GCC选项的-shared和-Wl-shared之间的区别
我知道这-Wl,-shared
是 的选项。我见过有人这样编译
$ gcc -shared -Wl,-soname,libtest.so -o libtest.so *.o
这样的人
$ gcc -Wl,-shared -Wl,-soname,libtest.so -o libtest.so *.o
因此,我想知道-shared
和之间是否存在差异-Wl,-shared
。
谢谢。
回答:
存在 是
通过之间的差-shared
,以GCC或-shared
给ld(通过-Wl
)。传递-shared
给GCC可能会在链接时启用或禁用其他标志。特别是,crt*
可能涉及不同的文件。
要获取更多信息,请-shared
在GCC的gcc/config/
目录和子目录中使用grep 。
举一个具体的例子:在i386 FreeBSD上,gcc
-shared将链接到目标文件中crtendS.o
,而没有时-shared
,它将链接到目标文件中crtend.o
。因此,-shared
并-Wl,-shared
不能等同。
以上是 GCC选项的-shared和-Wl-shared之间的区别 的全部内容, 来源链接: utcz.com/qa/436451.html