"); //-->
假设有3个文件,在同一目录下,有这样的依赖关系
test->liba.so->libd.so
如果编译test的时候这样写
gcc test.c –la
warning:libd.so, needed by liba.so not found
解决办法有3个
方法1
gcc test.c –la –ld
方法2
gcc test.c –la -Wl,-rpath-link ./
这样就告诉编译器,当要寻找liba的依赖库时候,请到 ./去找
方法3
gcc test.c –la -Wl,-rpath ./
这样就告诉编译器,当要寻找liba的依赖库时候,请到 ./去找
方法2和方法3有什么区别呢?
-rpath和-rpath-link都可以在链接时指定库的路径;但是运行可执行文件时,-rpath-link指定的路径就不再有效(链接器没有将库的路径包含进可执行文件中),而-rpath指定的路径还有效,程序回到指定的路径中去找库(因为链接器已经将库的路径包含在可执行文件中了。)最后,不管使用了-rpath还是-rpath-link,LD_LIBRARY_PATH还是有效的。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
关于makefile的问题
GNU makefile详细文档
国嵌应用班-1-3(makefile工程管理)
[转贴]Makefile解读
Makefile的编写指导
第10课第3节 内核启动流程分析之Makefile
Linux 2.6内核Makefile分析
Linux内核配置系统详解
Makefile文件中的一些符号 - from internet
第10课第4节 内核启动流程分析之内核启动
[求助]关于makefile的问题
改寫Makefile遇到的怪事..
第9课第2节 u-boot分析之Makefile结构分析
中文 Makefile 的教程
PCB布线,gcc-as以及布线方面的学习文档
u-boot的Makefile分析
bspname 目录下的makefile怎么生成?告诉我怎么作好么?
makefile教程
Linux下C编程基础之:make工程管理器