在QT中使用FFmpeg库的部分报错问题
win32: LIBS += -L$$PWD/../ffmpeg-win32-dev/lib/ -lavutil
win32: LIBS += -L$$PWD/../ffmpeg-win32-dev/lib/ -lavformat
win32: LIBS += -L$$PWD/../ffmpeg-win32-dev/lib/ -lswresample
win32: LIBS += -L$$PWD/../ffmpeg-win32-dev/lib/ -lswscale
INCLUDEPATH += $$PWD/../ffmpeg-win32-dev/include
DEPENDPATH += $$PWD/../ffmpeg-win32-dev/include
#include <libavutil/channel_layout.h> //用户音频声道布局操作 #include <libavutil/opt.h> //设置操作选项操作
#include <libavutil/mathematics.h> //用于数学相关操作
#include <libavutil/timestamp.h> //用于时间戳操作
#include <libavformat/avformat.h> //用于封装与解封装操作
#include <libswscale/swscale.h> //用于缩放、转换颜色格式操作
#include <libswresample/swresample.h> //用于进行音频采样率操作
使用遇到错误:D:\ffmpeg\dev\include\libavutil\common.h:210: error: ‘UINT64_C’ was not declared in this scope
if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) return (int32_t)((a>>63) ^ 0x7FFFFFFF);
解决方法:
在common.h文件中加入
#ifndef INT64_C
#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)
#endif
使用遇到错误D:\ffmpeg\dev\include\libavutil\common.h:32: error: #error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS
#error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS
解决办法:
记住要加到error missing -D__STDC_CONSTANT_MACROS 的前面不然还是找不到
#if defined __cplusplus
#define __STDC_CONSTANT_MACROS
#endif
注:以上类似#error missing -D__STDC_CONSTANT_MACROS 的错误都可以这样处理。
建议都在common.h文件里声明,如下
/////新增////////////
#ifndef INT64_C
#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)
#endif #if defined __cplusplus
#define __STDC_CONSTANT_MACROS //common.h中的错误
#define __STDC_FORMAT_MACROS //timestamp.h中的错误
#endif /////////////////////
参考:https://blog.csdn.net/qq_36088602/article/details/77885023
undefined reference to `av_register_all' 问题解决
解决方法:
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
引入头文件因为实在cpp的环境下引入的,需要
extern "C"
{
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
}
切记 exterm后面一定要跟{}。
这样写
extern "C"
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
是没有用的 这种是错误的。一定要带{},否则还是回报同样的错误。
参考:https://blog.csdn.net/qq_18144521/article/details/79608355
在QT中使用FFmpeg库的部分报错问题的更多相关文章
- Qt编译目录下exe文件执行报错问题的解决办法
使用Qt5.9.3+vs2017环境,编译项目生成Debug目录,运行其中的exe文件,出现以下错误(qt creator调试状态下或出安装包后是可以运行的): 经过查阅资料,发现是我重新配置Qt开发 ...
- 引用AForge.video.ffmpeg,打开时会报错:找不到指定的模块,需要把发行包第三方文件externals\ffmpeg\bin里的dll文件拷到windows的system32文件夹下。
引用AForge.video.ffmpeg,打开时会报错:找不到指定的模块,需要把发行包第三方文件externals\ffmpeg\bin里的dll文件拷到windows的system32文件夹下. ...
- IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式
转载请注明来源:四个空格 » IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式: 环境 ideaIU-2018.3.4.win: 错误提示: Could no ...
- postgresql 删除库的时候报错database "temp_test_yang" is being accessed by other users
删除库的时候报错 ERROR: database "temp_test_yang" is being accessed by other usersDETAIL: There ar ...
- 【转载】访问IIS中网站出现 403.14 - Forbidden报错信息
将网站发布后部署到IIS后,配置完应用程序池以及相关设置项后,在浏览器中访问设置好的网站,出现403.14 - Forbidden的错误信息,从错误信息的提示来看,应该是IIS服务器此网站目录的内容被 ...
- 【maven】【IDEA】idea中使用maven编译项目,报错java: 错误: 找不到符号 【2】
=================================================================================== idea中使用maven编译项目 ...
- eclipse 中离线安装activiti插件,报错“An error occurred while collecting items to be installed session context was:(...”
eclipse 中离线安装activiti插件,报错“An error occurred while collecting items to be installed session context ...
- ubuntu16.04安装库、插件报错:
安装一些插件.库,遇到报错 Could not fetch URL https://pypi.org/simple/pytest-pycodestyle/: There was a problem c ...
- QT中使用Glut库
用Qt中的QGLWidget窗体类中是不包括glut工具库的,难怪在myGLWidget(在我的程序中是QGLWidget的派生类)中绘制实心球体是说“glutSolidSphere”: 找不到标识符 ...
随机推荐
- Android框架Volley使用:Post请求实现
首先我们在项目中导入这个框架: implementation 'com.mcxiaoke.volley:library:1.0.19' 在AndroidManifest文件当中添加网络权限: < ...
- [b0037] python 归纳 (二二)_多进程数据共享和同步_管道Pipe
# -*- coding: utf-8 -*- """ 多进程数据共享 管道Pipe 逻辑: 2个进程,各自发送数据到管道,对方从管道中取到数据 总结: 1.只适合两个进 ...
- 江苏OSS用户权限修改
市场服务二部”修改为“市场二部”.“市场服务三部”修改为“市场三部”.“县域服务一部”修改为“县域一部”.“县域服务二部”修改为“县域二部”.“综合管理部”修改为“综合业务部”. SELECT * ...
- SQLyog使用期限(治标不治本的,治本的还没找到)
在注册表中找到 HKEY_CURRENT_USER\Software 选中其中的类似下列文件名的文件 HKEY_CURRENT_USER\Software\{d58cb4b1-47f3-45cb ...
- Mysql—用户表详解(mysql.user)
MySQL是一个多用户管理的数据库,可以为不同用户分配不同的权限,分为root用户和普通用户,root用户为超级管理员,拥有所有权限,而普通用户拥有指定的权限. MySQL是通过权限表来控制用户对数据 ...
- MIPI CSI2学习(一):说一说MIPI CSI2
1. MIPI CSI2简介 MIPI联盟是一个开放的会员制组织.2003年7月,由美国德州仪器(TI).意法半导体(ST).英国ARM和芬兰诺基亚(Nokia)4家公司共同成立.MIPI联盟旨在推进 ...
- Linux:挂载磁盘分区
查看挂载的分区 df 命令主要用来了解系统中已经挂载的各个文件系统的磁盘使用情况. 常用选项: "-h" ,显示更易读的容量单位: "-T" ,显示文件系统的类 ...
- RSA 登陆加密与解密
最近公司项目验收后,客户请来的信息安全技术人员对我们的网站进行了各种安全测试与排查问题,其中就有一个登陆时的加密问题.本来如果只是单纯的加密,可以直接在前台用MD5加密,将加密的值添加到数据库即可.但 ...
- 常见的Dos命令大全
打开cmd: Win键+R 输入cmd; 常用的Dos命令: 1.盘符切换: 2.打开文件目录: dir 3.清理屏幕: cls 4.退出: exit 5.查看本机IP地址:ipconfig ...
- Ubuntu18.04连接蓝牙耳机
使用的耳机是索尼WI-SP500,打开设置,找到Bluetooth,直接连接(WI-SP500在连接第二台设备时,需要长按开机键7秒才行), 保证Output选择需要连接的耳机,然后确保Profile ...