|
// [+] 09/25/09 (mm/dd/yy)
: H6 K1 E# ^* k
) L n4 o! i" S# j9 h `. e: A下载地址:9 m. ~9 N$ |6 U/ s% D0 M
http://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar3 G, U2 R9 O4 w$ @( D/ b
; {& O( M: W" S 总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。
& k# I) I( q! f9 O Y# E" B& n; [# B! W: _
科普开始9 f+ \5 @+ d0 T# l
. z3 Y1 P: s5 _1 ^2 m
1、编译问题
: N$ D6 Z9 t$ H$ T8 s; u6 H& \2 Z由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。
% k' X+ `. d- S5 V7 Y解决办法:在函数开头统一定义变量
. v0 r' P0 Z5 ?. n2 m1 b j4 @& x. n7 P- k2 ?5 |
e.g
$ x6 H# M- `/ B T+ }$ R2 U8 _
8 \ |. s" T# Z* A3 E) `编译不过( c e$ s- K8 U4 P
void funA() { void funA() {1 u3 I4 A" {: x1 Q1 o! }, a
int i,j; int i,j,x;
5 z* u5 }0 w& K0 n) u% V i = 0; ========> i = 0;
2 u( ]- ?' S; v$ o; T9 P' }% @* Z int x = 0; x = 0;
$ c- ]7 V- ?0 B} }. h( d$ ~7 D# }1 v. O8 J
( N% F9 y- C0 F2、链接问题( i9 U3 d$ D% E7 T
3 w7 X$ f8 y5 ~+ |1 h$ r+ _+ Ulibx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用
/ g- \" n2 P- L5 R1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用+ J4 F! M! l$ w3 G2 |6 H
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用4 n! y+ B4 p& R
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用) ^$ y$ ?( K5 v
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用8 |0 p4 j" D' x0 _. T. m; A+ @
1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用
( H: {2 d' n5 h L* B
( {! I, k: N6 g- f* u' G由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。- U. Y" ^4 [1 T. m: @
把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。5 E9 V! f5 Q" d+ o7 r
) W2 X6 w$ d# Q! nerror LNK2019 unresolved external symbol _log2f% ^9 d, D3 d0 n6 c# p4 j) q' O
另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :: h, Z0 \3 Q9 o4 F. H
* A3 o& ]; \6 i5 Z1 T! \# {
#ifdef _MSC_VER! g2 e ?6 X3 A0 \( {
#define inline __inline' U5 G2 v; C; g4 W4 D2 I- T
#define strcasecmp stricmp
1 o* ]9 D9 p) @% \/ i) n7 Y1 u& b#define strncasecmp strnicmp4 I4 n* U( N% }# c/ l
#define snprintf _snprintf2 e. j/ J; [ V* \( t2 K0 h7 P2 D
#define fseek _fseeki64' m+ Y( X s' _" I k7 C" F5 D" p
#define ftell _ftelli649 ?% z: m1 k! l! Y8 Z: s9 X! {
#define isfinite _finite/ }6 h5 _ W/ i7 M9 m6 B J" f
#define strtok_r strtok_s
9 G* J, U( i+ _/ Y- j0 u' y8 X#define _CRT_SECURE_NO_DEPRECATE- n& o' D" N7 Z9 g& Q7 I
#define X264_VERSION "" // no configure script for msvc: f$ w* J7 _) _/ Z2 k& P
#define log2f(x) (logf(x)*1.4426950408889634f)
8 x8 [ [6 \- B# Q5 q- j- [- p#endif
0 x9 V2 Q7 t w+ \& `9 p1 Y1 ]) w. t; C3 N* x# J1 k+ R
或 :, P" N/ I7 p5 v
#define log2f(x) ((float)log((double)(x)))/(log((double)2))
. n: a$ y8 D" U) y1 S; D+ C4 [ |
|