强制GCC静态链接如并行线程(而不是动态链接)(Force GCC to static-link e

2019-07-29 05:20发布

我的计划是建成一个装载机和共享库许多模块。 现在这些库的人使用并行线程,似乎与其绑定动态(在启动时加载)模块。 现在,这将会是simplier如果我能迫使并行线程被链接到模块文件。 GCC在Linux上,我该怎么办? 我猜的libpthreads.a是必要的....

Answer 1:

虽然联libpthread.a到一个共享库在理论上是可能的,这是一个非常糟糕的主意 。 其原因是libpthread是一部分glibc ,和各地 glibc 必须完全匹配,否则你会看到奇怪的和未解释的崩溃。

因此,链接libpthread.a到您的共同意愿库:

  1. 当不同版本的移动到机器导致程序崩溃glibc
  2. 因为你的现有程序崩溃时,你目前该机的glibc升级,但你的模块不反对更新重新链接libpthread.a

饶了自己加重,并且不这样做。



文章来源: Force GCC to static-link e.g. pthreads (and not dynamic link)