我在使用 ffmpeg 的 linux eclipse 上有一个小测试项目。 可以用命令行来实现
g++ -o m_vector -I/usr/include -I/usr/local/include m_vector.cpp -lavformat -lavcodec -lavutil -lm -lz -lva -lpthread
但是在 eclipse 中链接时我得到了一大堆错误
/home/user/projects/ffmpeg/libavcodec/internal.h:194: undefined reference to `av_rescale_q'
/usr/local/lib/libavcodec.a(mpegvideo.o): In function `update_picture_tables':
/home/user/projects/ffmpeg/libavcodec/mpegvideo.c:663: undefined reference to `av_buffer_unref'
/home/user/projects/ffmpeg/libavcodec/mpegvideo.c:663: undefined reference to `av_buffer_ref'
/home/user/projects/ffmpeg/libavcodec/mpegvideo.c:664: undefined reference to `av_buffer_unref'
/home/user/projects/ffmpeg/libavcodec/mpegvideo.c:664: undefined reference to `av_buffer_ref'
/home/user/projects/ffmpeg/libavcodec/mpegvideo.c:665: undefined reference to `av_buffer_unref'
/home/user/projects/ffmpeg/libavcodec/mpegvideo.c:665: undefined reference to `av_buffer_ref'
等等
我已经在项目中添加了所需的库,并且我使用了“extern c”。我的项目也知道需要包含。挖互联网没有给出答案。
最佳答案
交换您链接到的库的顺序,一个依赖于另一个。依赖最多的必须是最后一个,在本例中是 libavutil。
关于linux - 如何在 eclipse linux 中正确链接 ffmpeg 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21019380/