首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCC期权的-shared与-Wl、-shared的差异

GCC期权的-shared与-Wl、-shared的差异
EN

Stack Overflow用户
提问于 2011-01-07 08:57:46
回答 2查看 7.1K关注 0票数 13

我知道-Wl,-sharedld的一种选择。我见过有人这样编译,

代码语言:javascript
复制
$ gcc -shared -Wl,-soname,libtest.so -o libtest.so *.o

像这样的人

代码语言:javascript
复制
$ gcc -Wl,-shared -Wl,-soname,libtest.so -o libtest.so *.o

所以,我想知道-shared-Wl,-shared之间是否有什么区别。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-07 18:04:04

-shared传给gcc还是把-shared传给ld (通过-Wl)是有区别的。将-shared传递给GCC可能会在链接时启用或禁用其他标志。特别是,可能涉及不同的crt*文件。

要获得更多信息,请访问GCC的-shared目录和子目录中的grep。

编辑:给出一个具体的例子:在i386 FreeBSD上,gcc -shared将链接到对象文件crtendS.o中,而如果没有-shared,则将在crtend.o中进行链接。因此,-shared-Wl,-shared不是等价的。

票数 14
EN

Stack Overflow用户

发布于 2011-01-07 09:18:18

我不认为有什么区别。-shared不是gcc的一个受支持的选项,无论是否使用-Wl指定它,它都传递给链接器。gcc的-Wl选项用于指定将逗号分隔的选项列表传递给链接器进行进一步处理。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4623915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档