我的计划是建成一个装载机和共享库许多模块。 现在这些库的人使用并行线程,似乎与其绑定动态(在启动时加载)模块。 现在,这将会是simplier如果我能迫使并行线程被链接到模块文件。 GCC在Linux上,我该怎么办? 我猜的libpthreads.a是必要的....
Answer 1:
虽然联libpthread.a
到一个共享库在理论上是可能的,这是一个非常糟糕的主意 。 其原因是libpthread
是一部分glibc
,和各地 glibc
必须完全匹配,否则你会看到奇怪的和未解释的崩溃。
因此,链接libpthread.a
到您的共同意愿库:
- 当不同版本的移动到机器导致程序崩溃
glibc
- 因为你的现有程序崩溃时,你目前该机的
glibc
升级,但你的模块不反对更新重新链接libpthread.a
。
饶了自己加重,并且不这样做。
文章来源: Force GCC to static-link e.g. pthreads (and not dynamic link)