gpt4 book ai didi

使用 FFmpeg 库的 C 代码 - 编译错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:30:24 25 4
gpt4 key购买 nike

我最近一直在尝试编译使用 FFmpeg 库的 C 代码;但是,由于我无法确定的原因,编译失败了。

我一直试图编译的代码是 FFmpeg 的 Doxygen 文档网站上的 filtering_audio.c 文件(我将提供链接,因为代码太长,无法在此处引用):http://ffmpeg.org/doxygen/trunk/doc_2examples_2filtering_audio_8c-example.html

我使用gcc编译代码:

    gcc filter.c -lavformat -lavcodec -lavfilter  -lavutil

我得到以下 undefined reference 错误:

    /tmp/cc90K2S5.o: In function `init_filters':
filter.c:(.text+0x3e5): undefined reference to `av_int_list_length_for_size'
filter.c:(.text+0x407): undefined reference to `av_int_list_length_for_size'
filter.c:(.text+0x42d): undefined reference to `av_opt_set_bin'
filter.c:(.text+0x482): undefined reference to `av_int_list_length_for_size'
filter.c:(.text+0x4a4): undefined reference to `av_int_list_length_for_size'
filter.c:(.text+0x4ca): undefined reference to `av_opt_set_bin'
filter.c:(.text+0x51f): undefined reference to `av_int_list_length_for_size'
filter.c:(.text+0x541): undefined reference to `av_int_list_length_for_size'
filter.c:(.text+0x567): undefined reference to `av_opt_set_bin'
/tmp/cc90K2S5.o: In function `print_frame':
filter.c:(.text+0x76b): undefined reference to `av_frame_get_channel_layout'
/tmp/cc90K2S5.o: In function `main':
filter.c:(.text+0x831): undefined reference to `av_frame_alloc'
filter.c:(.text+0x83d): undefined reference to `av_frame_alloc'
filter.c:(.text+0x9de): undefined reference to `av_buffersrc_add_frame_flags'
filter.c:(.text+0xa16): undefined reference to `av_buffersink_get_frame'
filter.c:(.text+0xa58): undefined reference to `av_frame_unref'
filter.c:(.text+0xab6): undefined reference to `av_frame_free'
filter.c:(.text+0xac5): undefined reference to `av_frame_free'
collect2: error: ld returned 1 exit status

我知道 undefined reference 错误表明它无法找到从 filtering_audio.c 引用的函数,但这没有意义,因为这些函数应该存在于 FFmpeg 库中。

感谢任何帮助,谢谢!

最佳答案

  1. 那些不是编译器错误,而是链接器错误。
  2. 这些错误意味着您没有链接到您应该链接的库。您现在正在使用 -lavformat -lavcodec -lavfilter -lavutil,您确定它是完整的并且您正在链接您想要的版本吗?

编辑:

我在这里用那个例子做了一个快速测试,我需要一个库列表:

-lavformat
-lavcodec
-lavfilter
-lavutil
-lswresample
-lswscale
-lz
-lbz2

关于使用 FFmpeg 库的 C 代码 - 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16885314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com