difference between -lgcc_s and gcc

China☆狼群 提交于 2019-11-29 01:12:15

问题


what is the difference between linking against gcc_s and gcc by means of LDFLAGS?

Is gcc_s a static library and gcc shared library?

Because I was looking for a solution where it is mentioned to link against gcc whereas only gcc_s works in my case. I wish to know the real difference.

<<hidden symbol `__name_here' in /some/library/path.a(_filename.o) is referenced by DSO

In this case, the problem is usually solved by adding either "-l gcc" or "gcc -print-libgcc-file-name" to the linking flags (LDFLAGS). However, unlike my other regular platforms (i386, amd64, sparc64) here it wasn't enough. After a lot of head-banging (to be fair, it also comes from the music) I realized that this flag is necessary both when linking the libc and the final executable file. link: http://people.defora.org/~khorben/200903.html


回答1:


libgcc_s.so is a shared library, libgcc.a is a static library. They are not equivalent; it may be necessary to link both. libgcc_s contains global variables which must not have multiple copies in a process; the code in libgcc is safe to link multiple times.



来源:https://stackoverflow.com/questions/4547384/difference-between-lgcc-s-and-gcc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!