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

回到顶部