当前位置: 技术问答>linux和unix
有人在Linux上成功编译并运行了ogre程序吗?
来源: 互联网 发布时间:2016-09-01
本文导语: 如题,我自己貌似成功编译了ogre源码(Fedora11),使用eclipse写了个小程序,却没法运行。提示找不到libOgreMain.so,可是我/usr/local/lib下明明有这些文件,我把so文件拷贝到我程序目录下,也提示找不到,很奇怪的问题...
如题,我自己貌似成功编译了ogre源码(Fedora11),使用eclipse写了个小程序,却没法运行。提示找不到libOgreMain.so,可是我/usr/local/lib下明明有这些文件,我把so文件拷贝到我程序目录下,也提示找不到,很奇怪的问题?
|
动态库的搜索路径搜索的先后顺序是:
1.编译目标代码时指定的动态库搜索路径;//g++ main.cpp -Wl,-rpath=. -ltest -L.
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径;
4.默认的动态库搜索路径/lib;
5.默认的动态库搜索路径 /usr/lib
按照这个顺序,lz可以有以下方式修正:
1、在编译目标代码的时候,加上-Wl,-rpath=/usr/local/lib
2、在你的~/.bash_profile里,加上export LD_LIBRARY_PATH=/usr/local/lib 然后执行. ~/.bash_profile
3、配置你的/etc/ld.so.conf,加上一句/usr/local/lib
4、so放到/lib目录下
5、so放到/usr/lib目录下!
1.编译目标代码时指定的动态库搜索路径;//g++ main.cpp -Wl,-rpath=. -ltest -L.
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径;
4.默认的动态库搜索路径/lib;
5.默认的动态库搜索路径 /usr/lib
按照这个顺序,lz可以有以下方式修正:
1、在编译目标代码的时候,加上-Wl,-rpath=/usr/local/lib
2、在你的~/.bash_profile里,加上export LD_LIBRARY_PATH=/usr/local/lib 然后执行. ~/.bash_profile
3、配置你的/etc/ld.so.conf,加上一句/usr/local/lib
4、so放到/lib目录下
5、so放到/usr/lib目录下!
|
/usr/local/lib目录在你的PATH环境变量中吗?把这文件复制到/usr/lib下试试
|
通过ldd命令查看该小程序的库文件关联。
|
在文件/etc/ld.so.conf 里追加如下一句
/usr/local/lib
然后执行命令
#ldconfig
然后再执行你的程序
/usr/local/lib
然后执行命令
#ldconfig
然后再执行你的程序
|
/sbin/ldconfig /usr/local/lib
|
这样只是当时好用 下次启动完系统又不好用了
应该添加到/etc/ld.so.conf文件里
|
换行!直接添加路径即可~~~