|
|
// [+] 09/25/09 (mm/dd/yy)
3 F. S: x+ q! ? A7 @% E. v s+ M8 C3 e3 v) `2 A5 X
下载地址:( ~# o. h1 g N3 p1 {
http://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar0 z2 v' j! S' H# J
" l4 i9 f' _% Z' p1 x; l7 L 总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。
/ V; N/ d2 |8 M7 D" C& P, q* ?3 _5 b2 d7 Z7 k5 q% X
科普开始
1 B, Q* X0 k9 P2 R5 | j8 t' B
1、编译问题
, @4 x1 A' S6 y! q7 F8 ^, p: h由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。
; D4 b+ T8 C9 N7 k9 }; X4 W& E' F. O解决办法:在函数开头统一定义变量7 o* a# r: x/ K8 H2 V9 b
- R+ t; T4 B5 L3 e9 c/ J9 J: r1 B. | Ee.g4 r) ?) S2 t9 R3 y
6 M0 P- L1 @- @! @4 G8 R% j- Z) ?
编译不过8 W' V* s# X' K: S- r
void funA() { void funA() {- w: |* l$ ^1 l1 z
int i,j; int i,j,x;
/ [! B/ v( q" a* r! } i = 0; ========> i = 0;& {( k/ _6 K3 @7 p5 q2 t
int x = 0; x = 0;. t J7 |, Y! E, E! W$ x
} }& X& { `: R# J
* ?; ] s9 |; Q0 R2、链接问题
) ~) D ~ J$ U! k# a% [0 H. h* D; u' K1 [% z
libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用
" f+ r8 z+ H8 H5 K7 K/ C* c1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用) @" b7 }* _, p- s* y, L9 a
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用$ `+ S- L a7 x$ x* \: N: @
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用
( k" F o8 f9 F; n9 K0 C1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用! _6 I5 n/ A/ e; Z0 ~0 B
1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用2 T5 o' p& f& ?2 z6 k& X
* S3 E/ d9 P2 n6 o& p由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。 Q S( J# I: G k" g
把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。( X4 M; c: s; ?6 d) w, ^) l7 m
n3 y# G+ u! berror LNK2019 unresolved external symbol _log2f
/ }8 b; k2 f$ c, Y! L6 z8 x另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :4 I' I7 |8 j) h' f( [3 B2 `
8 S& N6 X' [ i% a; ]( p
#ifdef _MSC_VER
& v( T. m: ]8 r% ~#define inline __inline1 `" t1 W5 j9 m8 r& e9 K" c+ p
#define strcasecmp stricmp
7 j3 q/ ?8 w/ w0 O2 z#define strncasecmp strnicmp
( W [' o" ~5 O+ ~% s% z) R* j6 S#define snprintf _snprintf) H- H8 H- \% n8 @; [
#define fseek _fseeki64
- F" Z; ]9 }- O#define ftell _ftelli64
! C' J8 M4 D' `' @5 C#define isfinite _finite
6 ^9 A# j5 R2 i9 d7 K4 C#define strtok_r strtok_s- O7 } R4 m0 c$ s2 A/ @
#define _CRT_SECURE_NO_DEPRECATE# ^: O, Q3 W: T; r" A7 F" R3 F, g
#define X264_VERSION "" // no configure script for msvc* W) ?. J$ e7 c: X/ e8 q
#define log2f(x) (logf(x)*1.4426950408889634f)1 x9 z5 A; }; P' e
#endif! ]! m5 T7 w$ I* S8 f* m2 W
9 } R& E9 K* Z+ {( B5 E* d4 {! J或 :! ~/ k L6 Z; S$ [5 K# _9 l" K( B
#define log2f(x) ((float)log((double)(x)))/(log((double)2))
5 y- N$ [+ o% E3 d( E8 U& Z- u5 i |
|