关于 LIBRARY_PATH 和 LD_LIBRARY_PATH

当C程序链接动态库时,如果Makefile未指定路径,可能会导致链接失败。解决方法包括在Makefile中明确指定-L选项或者修改环境变量LIBRARY_PATH。在运行时,如果找不到动态库,需要通过修改LD_LIBRARY_PATH环境变量来添加正确路径。
摘要由CSDN通过智能技术生成

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:
</

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值