x264代码剖析(四):vs2010编译x264错误集锦
x264代码剖析(四):vs2010编译x264错误集锦
支持VC++平台的x264的最新版本是x264-20091006,接下来就以该版本为例分析编译运行x264过程中遇到的问题以及解决办法。
1、error C2143: syntax error : missing ';' before 'type'
错误提示:
错误原因:MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。
解决办法:在函数开头统一定义变量。
示例源码:
static ALWAYS_INLINE int x264_exp2fix8( float x )
{if( x >= 512.f/6.f ) return 0;if( x <= -512.f/6.f ) return 0xffff;int i = x*(-64.f/6.f) + 512;return (x264_exp2_lut[i&63]+256) << (i>>6) >> 8;
}
修改后代码:
static ALWAYS_INLINE int x264_exp2fix8( float x )
{int i; if( x >= 512.f/6.f ) return 0;if( x <= -512.f/6.f ) return 0xffff;i = x*(-64.f/6.f) + 512;return (x264_exp2_lut[i&63]+256) << (i>>6) >> 8;
}
注:x264代码中有十几处类似的错误,只需一一改正过来就可以了。
2、error C2059: syntax error : '['
错误代码:
static const uint8_t check_mv_lists[X264_MBTYPE_MAX] = {[P_L0]=1, [B_L0_L0]=1, [B_L1_L1]=2};
修改为:
static const uint8_t check_mv_lists[X264_MBTYPE_MAX] ={0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,0,0,0};
3、error C2146: syntax error : missing ')' before identifier 'PRIx32'
错误代码:
fprintf( stderr, "Bad header magic (%"PRIx32" <=> %s)\n",*((uint32_t*)header), header );
修改为:
fprintf( stderr, "Bad header magic (%ld %s)\n", *((uint32_t*)header), header );
4、error LNK2019: unresolved external symbol _x264_lookahead_init referenced in function _x264_encoder_open_76
这是由于libx264工程没有添加lookahead.c文件,从而缺少几个函数的定义造成的,错误提示如下图:
解决方法:添加lookahead.c进工程,如下图所示:
5、error LNK2019: unresolved external symbol _log2f referenced in function _x264_analyse_init_costs
解决办法:重新定义一下log2f(x)即可,在osdep.h中添加log2f(x)定义,加入的代码如下:
#ifdef _MSC_VER
#define inline __inline
#define strcasecmp stricmp
#define strncasecmp strnicmp
#define snprintf _snprintf
#define fseek _fseeki64
#define ftell _ftelli64
#define isfinite _finite
#define strtok_r strtok_s
#define _CRT_SECURE_NO_DEPRECATE
#define X264_VERSION "" // no configure script for msvc
#define log2f(x) (logf(x)*1.4426950408889634f)
#endif
截止目前,应该可以把所有的问题都解决了,出现了大家最喜欢的Build succeeded。
编译成功的源码包下载地址:http://download.csdn.net/detail/frd2009041510/9455143
x264代码剖析(四):vs2010编译x264错误集锦相关推荐
- x264代码剖析(二):如何编译运行x264以及x264代码基本框架
x264代码剖析(二):如何编译运行x264以及x264代码基本框架 x264工程在x265出现之前一直在更新,但是自x264-20091007(含)不再支持VC++平台,也就是说支持VC++平台的x ...
- x264代码剖析(十四):核心算法之宏块编码函数x264_macroblock_encode()
x264代码剖析(十四):核心算法之宏块编码函数x264_macroblock_encode() 宏块编码函数x264_macroblock_encode()是完成变换与量化的主要函数,而x264_m ...
- x264代码剖析(一):图文详解x264在Windows平台上的搭建
x264代码剖析(一):图文详解x264在Windows平台上的搭建 X264源码下载地址:http://ftp.videolan.org/pub/videolan/x264/ 平台:win7 PC. ...
- x264代码剖析(九):x264_encoder_encode()函数之x264_slice's'_write()函数
x264代码剖析(九):x264_encoder_encode()函数之x264_slice's'_write()函数 x264_encoder_encode()函数的核心函数就是x264_slice ...
- x264代码剖析(十一):核心算法之宏块分析函数x264_macroblock_analyse()
x264代码剖析(十一):核心算法之宏块分析函数x264_macroblock_analyse() x264的 x264_slice_write()函数中调用了宏块分析函数x264_macrobloc ...
- x264代码剖析(七):encode()函数之x264_encoder_encode()函数
x264代码剖析(七):encode()函数之x264_encoder_encode()函数 encode()函数是x264的主干函数,主要包括x264_encoder_open()函数.x264_e ...
- VS2010 编译Duilib 错误
解决VS2010 编译Duilib 错误 1>f:\mystudy\myprogramers\duilib\Control/UIFlash.h(10): warning C4192: 导入类型库 ...
- 编译Caffe-Win错误集锦
Caffe在Windows下编译还是遇到不少麻烦的... 1.visual studio 2013 error C2371: 'int8_t' : redefinition; 引入的unistd.h文 ...
- (转)x264代码详细阅读之x264.c,common.c,encoder.c
转自:http://alphamailpost.blog.163.com/blog/static/201118081201281103931932/ x264代码详细阅读第一之x264.c http: ...
最新文章
- api 定位 微信小程序 精度_微信小程序城市定位(借助百度地图API判断城市)
- 特斯拉2021全年交付近百万辆,同比暴涨87%,马斯克:了不起!
- 基于MIPS架构的BackTrace实现
- Kubernetes存储之PV-PVC
- 2021年第十二届蓝桥杯 - 省赛 - C/C++大学A组 - D.路径
- 数据资产纳入国资保值增值考核
- 双指针--Codeforces Round #645 (Div. 2) d题
- python字符串查找的四种方法_Python中的字符串查找操作方法总结
- final变量属性小记
- 字节跳动产品经理面经——飞书
- MFC位图读取操作步骤记录
- Excel被锁定,如何解锁
- 炭足迹计算机的火车好处,碳足迹与碳足迹计算器.pdf
- word域代码 乱序
- Robust performance of virtual sensing methods for active noise control 翻译
- 使用gsds绘制基因结构图_基因结构图的绘制
- 用C/C++手撕CPlus语言的集成开发环境(1)—— 语言规范 + 词法分析器
- css 动画 抖动,css3动画之上下抖动
- java1.17知识点回顾
- C/C++制作炫酷烟雾特效
热门文章
- 全民 Transformer (二): Transformer在深度学习和NLP中如何发挥作用
- docker搭建私有仓库笔记
- 黑盒测试实践---day2
- 更改自身web项目的图标(默认为tomcat的小喵咪)
- I.MX6 2G DDR3 16G eMMC
- 【乐畅】工作积累 ---- 设置一个弹窗的层
- CSS3给页面打标签
- VirtualBox上编译android遇到共享文件夹引起的问题
- Q134:PBRT-V3,次表面散射(Subsurface Scattering)(15.5章节)
- .xyz文件_Orca.xyz:除了银行系统瑞士还有同样安全的数字保险箱