gcc之链接 so a 库

本文详细介绍了在GCC中链接SO库时,如何使用-rpath和-L选项指定链接器搜索路径。讨论了LD_LIBRARY_PATH、LD_RUN_PATH的区别,并通过实例解释了为何在某些情况下需要使用-Wl,-rpath来指定运行时库的路径。同时,文章提到了如何检查和修改已编译库的rpath信息,以及链接顺序对结果的影响。" 102913214,8581114,阁楼提升机操作流程,"['物流技术', '仓储管理', '机械设备']
摘要由CSDN通过智能技术生成

 

(一)

GOOGLE:  gcc compile time search lib path environment;


http://xahlee.info/UnixResource_dir/_/ldpath.html   文章说:
很早以前:LD_LIBRARY_PATH 可以作为linker的搜索路径 在 -L 参数 之后被搜索!
现在:a) LD_LIBRARY_PATH不被作为linker的搜索路径, 而引入 LD_RUN_PATH 来实现linker搜索环境变量;
   b) Nowadays you specify the run-time path for an executable at link stage with the 「-R」 (or sometimes 「-rpath」) flag to “ld”.
  gcc 参数 -R  和 -rpath 等效。


下面贴子中的作者,估计就是用到了支持LD_LIBRARY_PATH作为linker搜索路径的版本。
http://stackoverflow.com/questions/1904990/what-is-the-difference-between-ld-library-path-and-l-at-link-time

我机器上的linker就不支持LD_LIBRARY_PATH作为linker搜索路径: 

[wyh@ appimp 22:04:48]$echo $LD_LIBRARY_PATH
/home/wyh/embtv_part_2/konka_broadcom/konka_app_example/kweb_aTo_so:./
[wyh@ appimp 22:05:40]$export LD_RUN_PATH=$LD_LIBRARY_PATH
[wyh@ appimp 22:13:40]$make
mipsel-linux-g++ -L/home/wyh/embtv_part_2/konka_broadcom/usr/local/lib -lz -ldirect -ldirectfb -lfusion -Wl,-O1 -Wl,-rpath,/home/wyh/embtv_part_2/konka_broadcom/usr/local/lib -Wl,-rpath,/home/wyh/embtv_part_2/konka_broadcom/usr/qt/lib -Wl,-rpath,/us

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值