如何在运行 ./configure 时指定库的位置?
我四处搜索并认为答案在于设置 LDFLAGS 和 CPPFLAGS,但我不确定如何做到这一点。
具体来说,我已经编译了 libx264,现在我想编译 libav 并启用 libx264 支持,但不知道如何将 ./configure 指向我的 libx264 include 和 lib 文件夹。
谢谢。
答案1
有两种方法可以将配置变量传递给./configure
,并且这在很大程度上取决于具体项目,因此您必须查看文档。
第一种是使用--with...
脚本作者提供的选项。例如,xcircuit
在 14.04 中必须像这样配置:
./configure --with-tcl --with-tk --with-tcllibs=/usr/lib/x86_64-linux-gnu/ --with-tklibs=/usr/lib/x86_64-linux-gnu/
另一种方法是将环境变量传递给脚本(在配置阶段)或 Makefile(在编译阶段):
CPPFLAGS=-Wall ./configure
或者
CPPLAGS=-Wall make
总之,这完全取决于作者如何编写软件。您应该参考 libav 的具体文档。
答案2
谢谢你的指点。我读了更多资料,发现了如何做到这一点。解决方案有两个方面。
使用“--enable-shared”和“--enable-static”编译 x264。如果不指定“--enable-shared”,则永远找不到该库。
指定 x264 制作过程生成的“lib”和“include”文件的位置,如下所示:-
./configure --extra-ldflags="-L/path/to/extra/lib" --extra-cflags="-I/path/to/extra/includes" --enable-x264 ..etc ..etc
我现在已经成功编译了支持 x264 的 libav,并具有以下二进制文件:-
avconv、avplay、avprobe、avserver、ffmpeg。
当然,我确信如果我刚刚使用 apt-get 安装 libav 我就可以省去很多麻烦,但由于这是一个学习过程,我认为我已经学到了很多东西。