gpt4 book ai didi

linux - Linux中通用的静态链接库

转载 作者:太空宇宙 更新时间:2023-11-04 11:05:45 26 4
gpt4 key购买 nike

给定一个静态库 StaticLib,如何提前知道在 linux 中使用哪些编译器和链接器选项以及库?有一些程序显示依赖关系,但我认为没有人为特定编译器提供特定选项。 StaticLib 之类的东西依赖于 Lib1、Lib2 和 Lib3,因此对 gcc 使用选项 -x -y -x。

在 Stackoverflow 和 Internet 中,只要回答这个一般性问题,就会自动回答数以千计的特定问题。

最佳答案

静态库对库没有明确的依赖性——不像动态库,动态库有(并且你可以在类 Unix 平台上使用 ldd 查看其依赖性)。您可以使用 nm 查看库中哪些符号已定义、未定义等,这将为您提供一些信息。对于“哪个库包含我的库引用但 undefined symbol 的定义?”这个问题没有单一的答案。因为任何具有该符号定义的库都与链接器的任何其他库一样有效。 (对于动态库也是如此 - 它们所宣传的依赖项只是链接器的指南。)

至于编译器标志,没有通用的方法来确定使用哪些标志来链接给定的库,因为在某些情况下,各种编译器要么从生成的库/可执行文件中删除这些信息,要么根本不记录它首先。开发人员通常会将这些信息与他们的库一起带外发布,例如“要链接到这个库,使用标志 XXX”。

关于linux - Linux中通用的静态链接库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25349568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com