c - FFMPEg and gcc problem



问题是:我写了一个使用FFMPEG的简单程序。编译如下:


gcc -lavcodec -lavformat -lavutil -c test.c
gcc -lavcodec -lavformat -Lavut -o test test.o

编译后没有问题,将显示测试文件,但启动时:./测试出现错误:

测试:加载共享库时出错:libavcodec.so.53:无法打开共享对象文件:没有这样的文件或目录

ffmpeg最初是在什么地方构建和安装的,文件libavcodec.so.53在那里。可能是什么问题?

您似乎正在链接自定义库目录-Lavut中的库。

检查加载程序在哪里查找可执行文件的库:

ldd ./test

如果它们中的任何一个位于非标准目录中(ldd表示找不到特定库),请将它们附加到LD_library_PATH:

LD_LIBRARY_PATH=/tmp/work/avut ./test

如果愿意,可以使用-rpath链接器选项(例如gcc ... -Wl,-rpath -Wl,/tmp/work/avut)将库路径硬编码到可执行文件中。

最新更新