我正在努力将库移植到AIX上。它适用于Solaris,Windows和Linux,但AIX令我头疼。我正处于构建和运行的阶段,但我遇到了一些链接的库存在问题。理想情况下,我希望能够运送一个只需要c运行时可用而没有其他依赖项的库。目前我遇到libpthread问题,我可以看到它是AIX特定线程库的符号链接。 我的问题是: 如果我没有链接pthread(我似乎不需要在Solaris上使用相同的代码库)那么我会得到未定义的符号。这很好我使用pthreads。如果我链接它然后它工作正常,除了任何调用应用程序也必须链接到pthreads。我真的不明白为什么我的调用应用程序,它不依赖于pthread,需要链接它只是因为它调用链接到共享对象的库?
我在AIX 6.1上使用gcc 4.2.4。
我可以运送一个库,该库需要pthread存在于库路径上(理想情况下我们会得到一个静态版本)但是我对运送一个在客户端上放置链接器的库有点不满意
关于我可能做错的任何想法?
答案 0 :(得分:0)
我似乎无动于衷。我删除了链接器上的-shared标志以解决早期的问题,当然,这会使库静态。因此,行为只是正常行为,如果您依赖于静态库中的动态库,则必须将它们链接到您的应用程序中。所以我把共享标志放回去,现在我的一半功能不再可访问了。它确实解释了我看到的问题。