cmake 脚本报错如下:

====================[ Build | ffmpeg_log | Debug ]==============================
/opt/clion-2020.2.4/bin/cmake/linux/bin/cmake --build /work/ffmpeg_doc/cmake-build-debug --target ffmpeg_log -- -j 6
Scanning dependencies of target ffmpeg_log
[ 50%] Building CXX object src/CMakeFiles/ffmpeg_log.dir/ffmpeg_log/ffmpeg_log.cpp.o
[100%] Linking CXX executable ffmpeg_log
/usr/bin/ld: CMakeFiles/ffmpeg_log.dir/ffmpeg_log/ffmpeg_log.cpp.o: in function `main':
/work/ffmpeg_doc/src/ffmpeg_log/ffmpeg_log.cpp:14: undefined reference to `av_log_set_level(int)'
/usr/bin/ld: /work/ffmpeg_doc/src/ffmpeg_log/ffmpeg_log.cpp:17: undefined reference to `av_log(void*, int, char const*, ...)'
collect2: error: ld returned 1 exit status
make[3]: *** [src/CMakeFiles/ffmpeg_log.dir/build.make:104:src/ffmpeg_log] 错误 1
make[2]: *** [CMakeFiles/Makefile2:114:src/CMakeFiles/ffmpeg_log.dir/all] 错误 2
make[1]: *** [CMakeFiles/Makefile2:121:src/CMakeFiles/ffmpeg_log.dir/rule] 错误 2
make: *** [Makefile:138:ffmpeg_log] 错误 2

使用nm工具查看库,看到库中是有对应的符号信息的

经过以上信息的确认,可以肯定如下:

  1. 库中肯定有对应的函数
  2. 链接时找不到
  3. 代码去掉对应函数的调用能正常运行
  4. 代码调用其他库能正常运行

经过以上的确认在看官方的给的FFmpeg的头文件吧,结果发现头文件上没有支持对C++代码的兼容,而本地使用的又是C++代码调用的,因此找不到对应的函数定义,一般的库都会加上extern "C"的,可能是ffmpeg对C的钟爱吧,根本没有考虑C++代码的调用

解决办法,告诉编译器这是个C代码的库的头文件,如下引用头文件就没有问题了:
在ffmpeg的头文件引用的时候加上extern “C”{}

ffmpeg函数调用失败--在编译自己的ffmpeg函数的时候显示ffmpeg函数undefined reference to `av_log_set_level(int)‘相关推荐

  1. linux下gcc编译使用opencv的源文件时报错的处理:undefined reference to symbol '_ZNSsD1Ev@@GLIBCXX_3.4'

    这阵子用OpenCV的sift做了一下匹配,在使用gcc编译时遇到这样的一个报错 /usr/bin/ld: /tmp/cceCEx1F.o: undefined reference to symbol ...

  2. codeblock使用中,多文件编译报XXXX undefined reference to XXX错问题

    练习C++的类,代码多了使用到.h和.cpp多个文件分开存放代码,编译时用Makefile,在Ubuntu上代码好好的. 想着用codeblick写方便扩展和调试啥的,一编译就报错D:\4.Cwork ...

  3. linux kernel编译 undefined reference to `__ae

    问题代码 ktime_t calltime, delta, rettime;unsigned long long duration;calltime = ktime_get();/*获取当前时间*/ ...

  4. 引用qcustomplot编译错误undefined reference to `_imp___ZN8QPrinterC1ENS_11PrinterModeE'

    引用qcustomplot,在编译的时候报了一堆这样的错误:undefined reference to `_imp___ZN8QPrinter C1ENS_11PrinterModeE', unde ...

  5. fcgi-2.4.0编译出现echo-cpp.o: undefined reference to symbol ‘FCGX_InitRequest‘

    问题描述 编译fcgi的时候出现如下错误 arm-oe-linux-gnueabi-ld: echo-cpp.o: undefined reference to symbol 'FCGX_InitRe ...

  6. 记录下编译u-boot提示错误:stdio.c:252: undefined reference to `serial_putc'的处理

    在编译u-boot时提示以下错误: stdio.c:252: undefined reference to `serial_putc' 百度发现网友已经解决该错误. 解决的办法是: 1.输入以下命令: ...

  7. 【ffmpeg】编译时报错:error: undefined reference to `av...

    1.问题描述 昨天使用ffmpeg库编译demo一切正常,今天再次链接ffmpeg库时报了一堆错误: error: undefined reference to `av_frame_alloc()' ...

  8. FFmpeg在Linux下编译使用

    1.FFmpeg编译 1.1.安装yasm 这里我是直接通过ubuntu包安装的,当然也可以通过编译源码来安装. sudo apt-get install yasm 1.2.下载FFmpeg git ...

  9. 基于 FFMPEG 的音频编解码(一):Hello FFMPEG,安装与编译

    Hello FFMPEG 基于 FFMPEG 的音频编解码(一):Hello FFMPEG,安装与编译 基于 FFMPEG 的音频编解码(二):音频解码 基于 FFMPEG 的音频编解码(三):音频编 ...

最新文章

  1. 接口测试,接口协议以及常用接口测试工具介绍
  2. 博士申请 | 香港中文大学王思博助理教授招收图表示学习方向全奖博士生
  3. Java 8 - 收集器Collectors_分区partitioningBy
  4. 树莓派c语言led,用树莓派实现RGB LED的颜色控制——C语言版本号
  5. P3959-宝藏【模拟退火】
  6. 微软python免费课程_微软再推免费在线Python教程 面向数据科学和机器学习初学者...
  7. 20190917:(leetcode习题)将有序数组转换为二叉搜索树
  8. ajax请求url最大长度,针对较长的URL的400BAD请求(ajax)
  9. mysql查询与索引优化2
  10. Mac下关于ssh命令的简化
  11. 软考初级程序员报考指南分享
  12. dos 批处理 for知识学习
  13. 进制转换方法总结——摘自百度
  14. python中ix用法_Python:Pandas中的ix用法详细解释
  15. 哪些人适合学大数据分析
  16. 区块链大戏上演!陈伟星VS朱啸虎公开互怼数个回合 | 区块链日报
  17. 第一章 初识JVAV
  18. C语言常见问题(10):Sections of code should not be commented out
  19. 装甲逆袭-NPC对话处理
  20. 快递物流信息复打接口API代码-快递100

热门文章

  1. 关于医网联影像工作站3.0(ProDicom Workstation 3.0)的版权及注册问题说明
  2. poj-2891(Strange Way to Express Integers)--中国剩余定理扩展欧几里得
  3. UVa --10566
  4. NYOJ 264 国王的魔镜
  5. BZOJ 4259 FFT
  6. docker network
  7. [JAVA] IOException: Invalid byte 2 of 2-byte UTF-8 sequence(解决办法)
  8. ADO.NET学习笔记--数据分组
  9. 深度之眼课程打卡-python入门05
  10. 编程方法学笔记:karel