关于 LIBRARY_PATH 和 LD_LIBRARY_PATH
来源:互联网 发布:雷克萨斯rx 知乎 编辑:程序博客网 时间:2024/05/22 17:19
C程序中要link某个动态库,比如放在 /usr/bin/boost/lib 下的 libboost_thread.so,而 Makefile 中没有指明在哪个路径下去 link,这时 link 可能会找不到正确的动态库。例如会得到类似下面的错误:
g++ -o ../bin/thread ../obj/main.o ../obj/dmd.o ../obj/thread.o -lboost_thread -lboost_system
/usr/bin/ld: cannot find -lboost_thread
collect2: ld returned 1 exit status
make: *** [../bin/thread] Error 1
解决办法有二,其一,从 Makefile 入手:
BOOST_LIB_DIR = /usr/bin/boost/lib
LNK_OPT = -L$(BOOST_LIB_DIR) -lboost_thread -lboost_system
明确告诉 make 从哪里去 link 动态库文件。
其二,修改环境变量 LIBRARY_PATH:
export LIBRARY_PATH="/usr/bin/boost/lib":$LIBRARY_PATH
在环境变量 LIBRARY_PATH 中加入正确的动态库路径
接下来,在运行程序 thread 时,遇到下面的错误提示
./thread: error while loading shared libraries: libboost_thread.so.1.52.0: cannot open shared object file: No such file or directory
即运行时加载动态库失败,没有找到要加载的动态库 libboost_thread.so.1.52.0(实际上该动态库位于 /usr/bin/boost/lib)。解决办法如下:
export LD_LIBRARY_PATH="/usr/bin/boost/lib":$LD_LIBRARY_PATH
即在环境变量 LD_LIBRARY_PATH 中加入正确的动态库路径。
- 关于 LIBRARY_PATH 和 LD_LIBRARY_PATH
- LIBRARY_PATH和LD_LIBRARY_PATH
- LIBRARY_PATH和LD_LIBRARY_PATH的区别
- gcc LD_LIBRARY_PATH和LIBRARY_PATH区别
- LIBRARY_PATH 和 LD_LIBRARY_PATH 的关系
- LIBRARY_PATH和LD_LIBRARY_PATH的区别
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- 如何解决TestNG Retry的问题
- sed
- 设计模式从零开始(一)
- 虚拟机linux的ip和dns设
- 有关圈圈的计算
- 关于 LIBRARY_PATH 和 LD_LIBRARY_PATH
- Debian 5升级至Debian 6
- GUI 剖析之控件篇之 图片控件
- 各种排序算法
- Hadoop管理员的十个最佳实践
- GUI剖析之资源篇之 菜单
- 在虚拟机上安装操作系统时,不能进入BIOS的解决方法
- C++/CX特性解读
- 第十二周-调用函数输出星号图1