【问题标题】:AIX dynamic linkingAIX 动态链接
【发布时间】:2011-04-08 17:08:08
【问题描述】:

我正在将一个库移植到 AIX 上。它适用于 Solaris、Windows 和 Linux,但 AIX 让我头疼。我正处于构建和运行的阶段,但我对它链接的一些库有疑问。理想情况下,我希望能够发布一个只需要 c 运行时可用而没有其他依赖项的库。目前我遇到了 libpthread 问题,我可以看到它是指向 AIX 特定线程库的符号链接。 我的问题是这样的: 如果我不链接 pthread(我似乎不需要在 Solaris 上使用相同的代码库),那么我会得到未定义的符号。没关系,我正在使用 pthreads。如果我链接它,那么它工作正常,除了任何调用应用程序也必须链接到 pthreads。我真的不明白为什么我的调用应用程序(它不依赖于 pthread)需要链接它只是因为它正在调用一个链接到共享对象的库?

我在 AIX 6.1 上使用 gcc 4.2.4。

我可以发送一个需要 pthreads 出现在库路径上的库(理想情况下我们会得到一个静态版本),但我对发送一个将链接器请求放在客户端上的库有点不满意.

关于我可能做错的任何想法?

【问题讨论】:

    标签: hyperlink pthreads aix


    【解决方案1】:

    我肯定似乎在绕圈子。我删除了链接器上的 -shared 标志以解决较早的问题,当然,这使库成为静态的。因此,这种行为只是正常行为,因为如果您依赖静态库中的动态库,则必须将两者链接到您的应用程序中。所以我把共享标志放回去了,现在我的一半功能不再可访问。它确实解释了我看到的问题。

    【讨论】:

      猜你喜欢
      • 2016-07-04
      • 2010-09-26
      • 2011-03-08
      • 2015-06-21
      • 2010-12-31
      • 1970-01-01
      • 2013-04-02
      相关资源
      最近更新 更多