【发布时间】:2017-06-05 07:01:42
【问题描述】:
我用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 编译器是 clang by "export cxx=/usr/bin/clang++")。
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libavcodec.a(crystalhd.o): In function `receive_frame':(.text+0xef): undefined reference to `DtsProcOutputNoCopy'
但是当我只是使用命令时,就可以了。
clang -o testffmpeg -lavutil -lavcodec main.cpp
在使用 gcc 时也会出现此错误
gcc -o testffmpeg -lavutil -lavcodec main.cpp
那么,我该如何解决这个问题,错误在哪里?
【问题讨论】:
-
我试试这个,但不能解决我的问题。我认为关键问题在于链接器无法解析 libavcodec.a 使用的函数,只需将错误链接到“libavcodec.a(crystalhd.o): In function
receive_frame':(.text+0xef): undefined reference toDtsProcOutputNoCopy'”