首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >可以让gcc在链接共享库时忽略静态库吗?

可以让gcc在链接共享库时忽略静态库吗?
EN

Stack Overflow用户
提问于 2011-06-29 09:46:48
回答 1查看 1.4K关注 0票数 5

我遇到过一些构建使用共享库或动态加载模块的项目的情况,其中模块/库依赖于另一个库,但在尝试链接之前没有检查共享副本是否可用。这会导致来自静态存档(.a文件)的对象文件被拉到结果.so中,并且由于这些对象文件是非PIC的,因此结果.so文件要么具有TEXTREL(非常糟糕的加载性能和内存使用),要么完全失败(在不支持非PIC共享库的x86_64等archs上)。

有没有办法让gcc编译器驱动程序拒绝将静态库代码链接到共享库输出中?由于可能需要链接来自libgcc.a等的最小数量,这似乎很困难和复杂……

EN

回答 1

Stack Overflow用户

发布于 2011-06-29 10:12:16

正如您所知道的,您可以使用-static仅链接到静态库,但是似乎没有一个很好的等价物来仅链接到动态库。

下面的答案可能是有用的。

How to link using GCC without -l nor hardcoding path for a library that does not follow the libNAME.so naming convention?

可以使用-l:libraryname.so列出要在库搜索路径中链接的动态库。指定.so结尾可能有助于处理仅限动态库的情况。您可能必须指定带有'lib‘前缀的全名,而不仅仅是缩写版本。

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

https://stackoverflow.com/questions/6514945

复制
相关文章

相似问题

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