通过gcc_s
链接到gcc
和LDFLAGS
有什么区别?gcc_s
是静态库还是gcc
共享库?
因为我一直在寻找一种解决方案,其中提到它链接到gcc
而在我的情况下只有gcc_s
有效。我想知道真正的区别。
<<hidden symbol `__name_here' in /some/library/path.a(_filename.o) is referenced by DSO
在这种情况下,通常可以通过在链接标志(LDFLAGS)中添加“ -l gcc”或“
gcc -print-libgcc-file-name
”来解决该问题。但是,与我的其他常规平台(i386,amd64,sparc64)不同,这还不够。经过大量的敲打(公平的说,它也来自音乐),我意识到在链接libc和最终的可执行文件时都必须使用此标志。链接:http://people.defora.org/~khorben/200903.html
最佳答案
libgcc_s.so
是共享库,libgcc.a
是静态库。它们不是等效的。可能需要同时链接两者。 libgcc_s包含全局变量,该全局变量在一个进程中不能有多个副本。 libgcc中的代码可以安全地链接多次。