介子找不到静态库

Posted

技术标签:

【中文标题】介子找不到静态库【英文标题】:Meson can't find static libs 【发布时间】:2020-08-13 16:50:32 【问题描述】:

我可以通过运行编译我的项目

g++ main.cpp -l:libpj-x86_64-unknown-linux-gnu.a  -lpthread -lm -luuid

g++ main.cpp /usr/local/lib/libpj-x86_64-unknown-linux-gnu.a  -lpthread -lm -luuid 

但是当我尝试使用以下任一方法添加库时:

meson.get_compiler('cpp').find_library('libpj-x86_64-unknown-linux-gnu.a')
meson.get_compiler('cpp').find_library('/usr/local/lib/libpj-x86_64-unknown-linux-gnu.a')

我收到错误:

错误:未找到 C++ 库“libpj-x86_64-unknown-linux-gnu”

【问题讨论】:

【参考方案1】:

解决方案是添加“dirs”变量,即使文件位于标准 /usr/local/lib 路径中,并删除 .a 扩展名。

cc.find_library('libpj-x86_64-unknown-linux-gnu', dirs: '/usr/local/lib/') 

后来当然 lib 在 meson 中可用,并被添加到可执行文件中并经过测试。

【讨论】:

与您的问题尝试的另一个区别是它不包含 .a 后缀

以上是关于介子找不到静态库的主要内容,如果未能解决你的问题,请参考以下文章

为啥找不到静态库头?

Pythonanywhere 'staticfiles' 不是有效的标记库:找不到模板库静态文件

cmake找不到静态库

gdbserver 找不到静态库课程

如何静态链接到 libstdc++.喜欢升级的GCC的朋友快来看看

找不到 Cocoa 静态库的输出 .a(在 xcode 4 中)