通过
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 中的代码可以安全地链接多次。