undefined reference to 'av_find_stream_info'
时间: 2023-09-11 11:08:37 浏览: 101
这个错误提示是链接错误,意味着编译器无法找到 `av_find_stream_info` 函数的实现。这通常是由于缺少对应的库文件或者链接选项导致的。
解决这个问题的方法是:
1. 确认你的代码中包含了 FFmpeg 的头文件,并且代码中使用的函数名字没有拼写错误。
2. 确认你的代码中包含了正确的库文件,可以在编译命令中添加 `-lavformat -lavcodec -lavutil` 等链接选项,这些选项会链接对应的 FFmpeg 库文件。
3. 确认你的编译环境中已经正确安装了 FFmpeg 库,并且库文件所在的路径已经被加入到了链接器的搜索路径中。
如果你使用的是 Linux 系统,可以尝试使用以下命令来编译代码:
```
gcc -o your_program your_source.c -lavformat -lavcodec -lavutil
```
其中,`your_program` 是你要生成的可执行文件名,`your_source.c` 是你的源代码文件名。这个命令会链接 FFmpeg 的库文件,并生成可执行文件。
如果你使用的是 Windows 系统,可以参考 FFmpeg 的官方文档来配置 Visual Studio 或者 MinGW 等开发环境,以便正确链接 FFmpeg 库文件。
相关问题
undefined reference to `av_find_stream_inf
这个错误通常表示程序无法找到 `av_find_stream_info` 的定义。可能的原因是你的程序没有正确链接 FFmpeg 库。你需要检查你的编译命令是否正确,是否包含了正确的库文件路径和库文件名。
另外,`av_find_stream_info` 已经被废弃,建议使用 `avformat_find_stream_info` 替代。
/usr/bin/ld: myfile.o: in function `MAIN__': myfile.f90:(.text+0x42): undefined reference to `_gfortran_st_write' /usr/bin/ld: myfile.f90:(.text+0x5d): undefined reference to `_gfortran_transfer_character_write' /usr/bin/ld: myfile.f90:(.text+0x6c): undefined reference to `_gfortran_st_write_done' /usr/bin/ld: myfile.o: in function `main': myfile.f90:(.text+0x8f): undefined reference to `_gfortran_set_args' /usr/bin/ld: myfile.f90:(.text+0xa0): undefined reference to `_gfortran_set_options' collect2: error: ld returned 1 exit status
这是一个编译链接错误,可能是你的代码中使用了某些未定义的函数或变量,或者链接的库不正确。具体来说,这些错误报告了在编译 myfile.f90 文件时找不到 _gfortran_st_write、_gfortran_transfer_character_write、_gfortran_st_write_done、_gfortran_set_args 和 _gfortran_set_options 这些函数。建议你检查代码中是否存在拼写错误,或者是否忘记了包含某些库文件。你可以尝试使用 -L 和 -l 选项来指定库文件的路径和名称,或者使用 -I 选项来添加头文件路径。
阅读全文