Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用cmake链接ffmpeg错误_Ffmpeg_Cmake_Linker - Fatal编程技术网

使用cmake链接ffmpeg错误

使用cmake链接ffmpeg错误,ffmpeg,cmake,linker,Ffmpeg,Cmake,Linker,我使用cmake使用ffmpeg lib创建我的项目,项目很简单 add_executable(testffmpeg main.cpp) link_directories( /usr/lib/x86_64-linux-gnu ) target_link_libraries(testffmpeg libavcodec.a libavutil.a ) make时,有很多未定义的引用错误(我的默认cxx编译器是“export-cxx=/usr/bin/clang++”)导致的clang 但当我只使用

我使用cmake使用ffmpeg lib创建我的项目,项目很简单

add_executable(testffmpeg main.cpp)
link_directories( /usr/lib/x86_64-linux-gnu )
target_link_libraries(testffmpeg libavcodec.a libavutil.a )
make时,有很多未定义的引用错误(我的默认cxx编译器是“export-cxx=/usr/bin/clang++”)导致的clang

但当我只使用命令时,它就可以了

clang -o testffmpeg -lavutil -lavcodec main.cpp
在使用gcc时也会出现此错误
gcc-o testffmpeg-lavutil-lavcodec main.cpp


那么,如何解决这个问题以及错误在哪里呢?

您需要在链接器标志中添加-lcrystalhd。 您可以使用下面的代码查找所有链接器标志

pkg-config --libs libavformat
-L/usr/local/lib -lavformat -lXv -lX11 -lXext -ldl -lvdpau -lva -lva-x11 -lX11 -lva -lva-drm -lva -lxcb -lxcb-shm -lxcb -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb -lxcb-shape -lxcb -lsndio -ljack -lasound -lSDL2 -lx264 -lcrystalhd -lm -llzma -lbz2 -lz -pthread -lavcodec -lXv -lX11 -lXext -ldl -lvdpau -lva -lva-x11 -lX11 -lva -lva-drm -lva -lxcb -lxcb-shm -lxcb -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb -lxcb-shape -lxcb -lsndio -ljack -lasound -lSDL2 -lx264 -lcrystalhd -lm -llzma -lbz2 -lz -pthread -lswresample -lm -lavutil -lm

可能重复我尝试这个,但不能解决我的问题。我认为关键问题在于链接器无法解析libavcodec使用的函数。a仅在“libavcodec.a(crystalhd.o):在函数
receive\u frame':(.text+0xef):未定义对
dtsprocutnocopy'的引用”时链接错误
pkg-config --libs libavformat
-L/usr/local/lib -lavformat -lXv -lX11 -lXext -ldl -lvdpau -lva -lva-x11 -lX11 -lva -lva-drm -lva -lxcb -lxcb-shm -lxcb -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb -lxcb-shape -lxcb -lsndio -ljack -lasound -lSDL2 -lx264 -lcrystalhd -lm -llzma -lbz2 -lz -pthread -lavcodec -lXv -lX11 -lXext -ldl -lvdpau -lva -lva-x11 -lX11 -lva -lva-drm -lva -lxcb -lxcb-shm -lxcb -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb -lxcb-shape -lxcb -lsndio -ljack -lasound -lSDL2 -lx264 -lcrystalhd -lm -llzma -lbz2 -lz -pthread -lswresample -lm -lavutil -lm