首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pkg-config标志是相对的

pkg-config标志是相对的
EN

Unix & Linux用户
提问于 2016-10-19 16:37:28
回答 1查看 1.1K关注 0票数 0

我正在尝试使用自定义构建的bmdtools版本来编译利巴夫11,这是我在~/libav-11.8/build下使用Ubuntu14.04下的g++ 4.8.4编译的。bmd使用pkg-config来构建g++标志,而且由于编译在链接阶段失败,我测试了pkg-config输出如下:

代码语言:javascript
复制
echo `pkg-config --cflags --libs libavcodec libavformat libswscale libavutil`

护盾

代码语言:javascript
复制
-I/usr/local/include -pthread -L/usr/local/lib -lavformat -lavcodec
-ldl -lasound -lz -lwscale -lavutil -lm

因此,我发现-I-L标志没有设置为自定义构建位置。设置PKG_CONFIG_PATH=~/libav-11.8/build/lib/pkgconfig并再次运行它

代码语言:javascript
复制
-Ibuild/include -pthread -Lbuild/lib ...<lib flags>

如果我从构建根文件夹运行g++,这将是正确的。不应该将pkg-config解析为绝对路径而不是相对路径吗?这种行为背后的理由是什么?

EN

回答 1

Unix & Linux用户

发布于 2016-10-19 17:42:43

在阅读免费桌面指南之后,我意识到pkg并不能验证二进制文件、库或路径是否准确。它只输出在LibsCflags.pc文件中写入的内容。

在我的例子中,这些都是由libav的编译过程创建的,并使用传递给prefixconfigure变量。

因此,在重新编译prefix设置为绝对路径的libav之后,pkg-config将输出适合于编译其他项目的-I-L标志。

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

https://unix.stackexchange.com/questions/317500

复制
相关文章

相似问题

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