GCC选项的-shared和-Wl,-shared之间的区别

Yan*_*Xie 13 unix linux linker gcc shared-libraries

我知道-Wl,-sharedld的一个选项.我见过有人像这样编译,

$ gcc -shared -Wl,-soname,libtest.so -o libtest.so *.o
Run Code Online (Sandbox Code Playgroud)

有些人喜欢这样

$ gcc -Wl,-shared -Wl,-soname,libtest.so -o libtest.so *.o
Run Code Online (Sandbox Code Playgroud)

所以,我想知道-shared和之间是否存在一些差异-Wl,-shared.

谢谢.

F'x*_*F'x 14

存在通过之间的差-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不能等同.