如何配置链接,以便编译后的二进制文件找到库



我正在编译ffmpeg。配置:

--prefix=/home/john/zope/engage/zeocluster/ffmpeg/parts/ffmpeg-build --extra-cflags='-I/home/john/zope/engage/zeocluster/ffmpeg/parts/x264-build/include -I/home/john/zope/engage/zeocluster/ffmpeg/parts/ogg-build/include -I/home/john/zope/engage/zeocluster/ffmpeg/parts/theora-build/include -I/home/john/zope/engage/zeocluster/ffmpeg/parts/lame-build/include -I/home/john/zope/engage/zeocluster/ffmpeg/parts/faac-build/include -I/home/john/zope/engage/zeocluster/ffmpeg/parts/faad-build/include -I/home/john/zope/engage/zeocluster/ffmpeg/parts/vpx-build/include -I/home/john/zope/engage/zeocluster/ffmpeg/parts/vorbis-build/include -I/home/john/zope/engage/zeocluster/ffmpeg/parts/ffmpeg-build/include' --extra-ldflags='-L/home/john/zope/engage/zeocluster/ffmpeg/parts/x264-build/lib -L/home/john/zope/engage/zeocluster/ffmpeg/parts/ogg-build/lib -L/home/john/zope/engage/zeocluster/ffmpeg/parts/theora-build/lib -L/home/john/zope/engage/zeocluster/ffmpeg/parts/lame-build/lib -L/home/john/zope/engage/zeocluster/ffmpeg/parts/faac-build/lib -L/home/john/zope/engage/zeocluster/ffmpeg/parts/faad-build/lib -L/home/john/zope/engage/zeocluster/ffmpeg/parts/vpx-build/lib -L/home/john/zope/engage/zeocluster/ffmpeg/parts/vorbis-build/lib -L/home/john/zope/engage/zeocluster/ffmpeg/parts/ffmpeg-build/lib'

构建完成,LD_LIBRARY_PATH=./parts/ffmpeg-build/lib:./parts/x264-build/lib ./parts/ffmpeg-build/bin/ffmpeg运行二进制文件。

为什么需要LD_LIBRARY_PATH ?我不是已经告诉编译器链接到这些库了吗?

如果您使用的是gcc,您可以使用链接器选项来指定运行时动态链接的首选路径。您可以添加几个rpath选项,每个选项如下:

gcc ... -Wl,-rpath=<PATH>

最新更新