通过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
答案 0 :(得分:15)
libgcc_s.so
是一个共享库,libgcc.a
是一个静态库。它们并不等同;可能有必要将两者联系起来。 libgcc_s包含全局变量,它们在进程中不能有多个副本; libgcc中的代码可以安全地链接多次。