7

我的程序是作为加载器和许多共享库的模块构建的。现在其中一个库使用 pthreads,它似乎动态绑定到模块(在启动时加载)。现在,如果我可以强制 pthread 链接到模块文件中会更简单。Linux上的GCC,我该怎么做?我想 libpthread.a 是必要的....

4

1 回答 1

19

虽然理论上可以链接libpthread.a到共享库,但这是一个非常糟糕的主意。原因是libpthread是 的一部分glibc,并且的所有部分glibc 必须完全匹配,否则您会看到奇怪且无法解释的崩溃。

因此,链接libpthread.a到您的共享库将:

  1. 移动到具有不同版本的计算机时导致程序崩溃glibc
  2. 当您当前的机器升级时,导致您现有的程序崩溃glibc,但您的模块没有重新链接到 updated libpthread.a

不要让自己生气,不要那样做。

于 2012-04-30T21:35:56.343 回答