【问题标题】:link ffmpeg error with cmake用 cmake 链接 ffmpeg 错误
【发布时间】: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 to DtsProcOutputNoCopy'”

标签: ffmpeg cmake linker


【解决方案1】:

您需要在链接器标志中添加 -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

【讨论】:

    猜你喜欢
    • 2014-11-02
    • 2013-12-21
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多