免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ljwilliam
打印 上一主题 下一主题

动态库:gcc-L-l和gcc绝对路径的问题求助 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2010-05-19 17:03 |显示全部楼层
执行时。./test会去load动态链接库,默认去/lib/下面找,你吧你的libmyfunction.so 拷贝到/lib下。

或者设置环境变量 LD_LOAD_PATH=/home/xxx/

论坛徽章:
0
2 [报告]
发表于 2010-05-19 17:23 |显示全部楼层
gcc test.c /home/xxx/libmyfunction.so -o test 会把/home/xxx/libmyfunction.so 记录到生成的test中

gcc test.c -L/home/xxx/ -lmyfunction -o test中的-L只是提供搜索路径,但不能确定libmyfunction.so是在你提供的路径下,还是在/lib或者/usr/lib下,所以test中没有记录这个.so的路径信息,所以ld-linux.so就找不到它了。

论坛徽章:
0
3 [报告]
发表于 2010-05-20 09:45 |显示全部楼层
回复 8# ljwilliam


     别的办法肯定也有,但是就会比较复杂了。

论坛徽章:
0
4 [报告]
发表于 2010-05-21 10:05 |显示全部楼层
回复 11# ljwilliam


    那不叫静态链接,两种都是动态链接,不要被误导哦。-static是用来静态链接的,

论坛徽章:
0
5 [报告]
发表于 2010-05-21 10:10 |显示全部楼层
本帖最后由 liying_gg 于 2010-05-21 10:12 编辑

回复 15# ljwilliam


    用了.so的都是动态链接,静态链接是直接把相应的函数放到你的exe中,不需要运行时加载,你这两种情况都是运行时加载的,可以ldd看一下。如果是静态链接的话,删掉你的那个so文件一样可以运行,你不信删一下你那个,肯定就不能运行了

论坛徽章:
0
6 [报告]
发表于 2010-05-21 10:34 |显示全部楼层
回复 17# ljwilliam


    运行起来都是一样的,就是路径信息有没有写到你的可执行文件而已。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP