得先把Sphinxbase的库的路径进环境变量中。通过:
export LD_LIBRARY_PATH=/usr/local/lib //这个一般系统都已经加进去了。
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig //这个PKG_CONFIG_PATH主要指明Sphinxbase的.pc文件的所在路径,这样 pkg-config工具就可以根据.pc文件的内容动态生成编译和连接选项,比如 cflags(编译用的头文件)和 libs (连接用的库),至于说pkg-config的具体细节?搜索下就知道了,了解这个工具非常有用。
另外,环境变量的设置只对当前的终端窗口有效,新建一个新的终端或者重启系统之后,需要重新设置 PKG_CONFIG_PATH。所以我们可以通过编辑系统的链接文件/etc/ld.so.conf去使其长期有效,如下:
#vi /etc/ld.so.conf
打开后,在新的一行添加(每一个路径一行):
/usr/local/lib
/usr/local/lib/pkgconfig
然后,执行:
#ldconfig
使其生效(ldconfig将 /etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用,系统是通过读取这个库列表文件来加快搜索链接路径的速度的)。
/opt/ros/hydro/lib/rosout/rosout: error while loading shared libraries: libroscpp.so: cannot open shared object file: No such file or directory
failed to start local process: /opt/ros/hydro/lib/rosout/rosout __name:=rosout __log:=/home/yuyin/.ros/log/91ae8af2-97d3-11e4-a56f-005056890008/rosout-1.log
缺少roscpp库文件?其实还是ld库设置不正确造成的。