我知道-Wl,– 共享是ld的选项.我看过一些人这样编译,
$gcc -shared -Wl,-soname,libtest.so -o libtest.so *.o
有些人喜欢这样
$gcc -Wl,-shared -Wl,libtest.so -o libtest.so *.o
所以,我想知道-shared和-Wl,-shared之间是否有区别.
谢谢.
通过-shared到gcc或-shared到ld(通过-Wl)之间有区别.传递 – 与GCC共享可以在
链接时启用或禁用其他标志.特别地,可能涉及不同的crt *
文件.
要获取更多信息,请在GCC的gcc / config /目录和子目录中进行-shared的grep.
编辑:给出一个具体的例子:在i386 FreeBSD上,gcc -shared将在目标文件crtendS.o中链接,而没有-shared,它会链接在crtend.o中.因此,-shared和-Wl,-shared不相等.