|
// [+] 09/25/09 (mm/dd/yy)
' ]" F- b- c8 U9 v- W% d8 X
' h* ^/ l) ~- U* t0 Y7 P: Y下载地址:
% L1 H0 w- x; e1 h z( _7 }. Q1 [: Shttp://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar
9 a" ? L" w+ i7 ?* X
! T7 b, U' E9 u6 l, K6 o 总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。
: m! |/ P4 p; @0 g7 k2 Q* g) M0 o
科普开始
% L& R1 h: N6 N; ~" `' t$ p v6 v# [/ u% B; g* F
1、编译问题- r' e) o. g8 N, W0 u5 F
由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。; l1 `0 l3 F) `. ]4 N% v6 h
解决办法:在函数开头统一定义变量8 z. o" h) l9 }; F4 Y; h9 c, {
5 O9 e" b( D J( n* i! z" ~e.g7 s2 i6 K% Z& ?( F
7 N- ?$ M4 l& h8 }6 H
编译不过
- }( V4 x+ P2 W6 K0 u6 `void funA() { void funA() {
! W) y P" f# T8 s int i,j; int i,j,x;7 D! y" i' s* K
i = 0; ========> i = 0;! ^8 Q' p: t v3 W) U
int x = 0; x = 0;1 T! }* F# `# r( C
} }0 x+ l! M' S, ~' E8 e
; O$ |& ~9 I. [' K9 d
2、链接问题) t J, G9 K8 H4 P0 S
2 g1 O" E% Z& ?1 a# V
libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用5 d3 k w; Q1 Q0 ?
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用4 }& \6 m5 s- P, d
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用$ L+ y% O% \! |( F1 e
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用7 N+ m* J" z5 k
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用
# v b. `! n! N5 H+ o$ R$ }1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用
) L4 [+ q* W$ t5 L Y3 }4 A
; U, x' @5 O i) b: ~2 x由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。5 e3 K8 i* d. h: g4 @( ^
把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。
7 a+ z7 z+ S+ x: X( U) ] Q
/ n1 ]7 d3 M- Y; {error LNK2019 unresolved external symbol _log2f
! w0 w# m' @ H o; d另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :
% {9 s; I1 u' R4 q' P e- M3 b
" {/ M2 g! G' N4 S* H3 L1 c#ifdef _MSC_VER) ?0 u! C2 r9 G
#define inline __inline
( @. b" M* D2 `% a0 k4 P; l9 {#define strcasecmp stricmp( H& [) K7 }1 u) Y% k* w9 B5 W2 Z
#define strncasecmp strnicmp+ G0 Q4 S5 ]7 c$ v N
#define snprintf _snprintf) }7 c, n- ^9 L' i" J/ \6 R& o
#define fseek _fseeki64
. V1 Z. u2 k" Q#define ftell _ftelli64
+ `# P9 ` E( d- t# s* _#define isfinite _finite0 Z5 E& X3 y$ P# {: q H
#define strtok_r strtok_s
* {& A- e, g5 N5 J3 B) x7 H#define _CRT_SECURE_NO_DEPRECATE
" _! P) R( Y+ @! ]0 T#define X264_VERSION "" // no configure script for msvc! ~: {7 ~ Y& Z
#define log2f(x) (logf(x)*1.4426950408889634f)
0 E S f! P& g1 C0 M#endif
$ b& E! i8 e- ]4 k5 Z: x7 \. G- [: I* I
或 :, E5 C* S; j, d' Z
#define log2f(x) ((float)log((double)(x)))/(log((double)2))
' U) o3 q8 R& ~# B |
|