我想静态链接pkg-config找到的libpng。
pkg-config --libs --static libpng
输出
-L / usr / local / Cellar / libpng / 1.6.15 / lib -lpng16 -lz
我在该目录中都有
libpng16.a
libpng16.dylib
,如果使用这些标志,则库将动态链接。如何告诉pkg-config或链接器(最好以某种可移植的方式)我真的希望它静态链接?
我试过在pkg-config的标志之前添加
-static
,但这会使clang的ld
尝试链接“ crt0.o”失败。
最佳答案
pkg-config --static
选项依赖于.pc文件中的正确标记。如果提供--static
选项未返回链接到libpng存档所必需的正确信息,则您不能将pkg-config
用于此目的。
我怀疑libpng
之后的一段时间内放弃了对静态链接的支持。他们可能仍提供库存档,但是libpng 1.2
文件不再正确标记为支持静态链接。您将必须手动告诉libpng pkg-config
使用静态库。
关于static-linking - 如何使用pkg-config静态链接库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27586503/