问题是:我写了一个使用FFMPEG的简单程序。编译如下:
gcc -lavcodec -lavformat -lavutil -c test.c
gcc -lavcodec -lavformat -Lavut -o test test.o
编译没有问题,出现测试文件,但是当你开始时: 。 /测试 发生错误:
。 / test:加载共享库时出错:libavcodec.so.53:无法打开共享对象文件:没有这样的文件或目录
最初构建和安装ffmpeg以及文件libavcodec.so.53。可能是什么问题?
答案 0 :(得分:1)
您似乎正在链接自定义库目录-Lavut
中的库。
检查加载程序查找可执行文件库的位置:
ldd ./test
如果它们中的任何一个位于非标准目录中(并且ldd
表示找不到特定的库),请将它们附加到LD_LIBRARY_PATH:
LD_LIBRARY_PATH=/tmp/work/avut ./test
如果您愿意,可以使用-rpath
链接器选项将库路径硬编码到可执行文件中,例如gcc ... -Wl,-rpath -Wl,/tmp/work/avut
。