|
|
// [+] 09/25/09 (mm/dd/yy)7 S* ~+ Q; z8 t( L( Q* x) N5 ?8 n
3 M1 Z( }) X" w: O8 Q下载地址:
3 }2 `) a% z4 K% }. ahttp://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar: G# K- a7 s+ j$ x9 q
$ L7 `7 I6 Q0 ^' b
总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。
) b+ _* R9 C1 L) }' E% f. w( G
p" S- Y* v$ Y1 L科普开始5 M1 Q8 [" d' I8 I5 J& q
8 ]+ e' D! t" o+ J. a5 `
1、编译问题
0 V7 P. B% C6 {" P, K* @由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。: T( ?$ P" r! L8 f6 W
解决办法:在函数开头统一定义变量2 M9 @1 m ^' I
8 Q) s5 D6 U. e8 n; ?+ T& Re.g
1 Z% A+ _) e4 G x! z; t X
' O+ u9 z8 E, \, ^1 ~2 ~编译不过3 D) g% ~4 L2 c; o# n
void funA() { void funA() {; D* g: q8 g5 \+ X
int i,j; int i,j,x;
( h( M b9 R- V) k8 m: E; _0 c i = 0; ========> i = 0;5 f9 X O6 A; {1 r5 [$ |3 `
int x = 0; x = 0;
/ E2 K; x: u! k! [4 h) x+ J} }
8 p, Y7 f2 _4 f
9 F" x* u- b9 e! h: |; t: X3 |2、链接问题6 _) A% e1 c% G3 M
) r$ d; ?8 c+ J% {
libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用
8 G( O$ h) y5 i7 a, s1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用
8 W8 \$ F" y! T$ p1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用
$ t& j7 ]/ D- L* ^9 k, o% G/ V1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用
9 }5 H, B! I8 Z) [( B' U1 V- @( H1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用
3 ]1 B8 i2 G$ n: `' g# z1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用
X! i- N5 _& l @/ e; V- L! a& t$ } Z9 L6 Z
由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。0 X4 B! f3 C$ S
把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。
$ X u+ `) J1 b+ k( K/ v9 Z& O r K- G( V
error LNK2019 unresolved external symbol _log2f
- w3 s! d% f$ R- o另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) : Z1 [9 {- o+ X- E+ `
. C+ _ M) V8 y0 E& N/ B- c8 }# s9 K
#ifdef _MSC_VER& S, r0 i$ _! b5 }
#define inline __inline
& ^6 M5 w0 `6 o! z7 M# {5 I#define strcasecmp stricmp
1 X0 v& J% {! [& S* r#define strncasecmp strnicmp: v5 H) p6 [; E8 M7 n8 D% Y0 Y$ h* A
#define snprintf _snprintf3 |) V- X' ?; o6 `& \+ ]6 l
#define fseek _fseeki64
! l! m: f1 u$ R( ]; h2 N#define ftell _ftelli64) Z- ]; T4 A1 N& }
#define isfinite _finite( n: H/ @$ h9 ~2 Y, M
#define strtok_r strtok_s5 c4 Y' H1 M Z
#define _CRT_SECURE_NO_DEPRECATE
5 |% T( o) ~/ x% z" b- B% C#define X264_VERSION "" // no configure script for msvc
6 I; U& E" O5 B4 q* b2 C( M#define log2f(x) (logf(x)*1.4426950408889634f)
: w4 g1 p- s* Q; C5 w/ r#endif
- Q* d) N2 Q0 D8 @1 U7 @$ K; f1 V8 P/ _% B0 X
或 :
3 V/ Y, A# A3 G5 Z' F3 I- d4 v#define log2f(x) ((float)log((double)(x)))/(log((double)2))+ D* j r+ H7 h1 d, b
|
|