首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AIX动态链接

AIX动态链接
EN

Stack Overflow用户
提问于 2010-09-06 18:10:29
回答 1查看 347关注 0票数 0

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

我使用的是AIX6.1,使用的是gcc 4.2.4。

我可以发布一个要求pthread出现在库路径上的库(理想情况下,我们应该得到一个静态版本),但我对发布一个将链接器规则放在客户端上的库有点不满意。

你知道我可能做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-10 21:52:16

令人沮丧的是,我似乎在兜圈子。我删除了链接器上的-shared标志,以解决前面的问题,当然,这会使库成为静态的。因此,这种行为只是正常行为,因为如果你依赖一个来自静态库的动态库,你必须将这两个库都链接到你的应用中。所以我把共享标志放回去了,现在我的一半函数不再可以访问了。这确实解释了我所看到的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3650604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档