|
|
// [+] 09/25/09 (mm/dd/yy)
9 [% z4 r. y* }8 t8 g4 f; w* L6 i: o/ c6 J; A/ C4 y
下载地址:+ y" x3 x+ _9 s; K0 O
http://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar5 Q5 f' c p6 L0 z8 L
: ^, P0 O. g1 t* y8 |4 g 总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。& e+ f0 m( x% g8 d0 b/ z' U a
8 w2 c3 y, Y( f" x. ^科普开始
' ?# L- U2 N) z1 m' [* g3 K3 z! [
1、编译问题$ ~9 R5 n: X, Q' n8 F
由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。
) @9 x% z2 T# u$ ^( P# s解决办法:在函数开头统一定义变量
7 n5 g- S4 L$ ^2 N3 V9 y% `0 o2 c+ u
+ B T& ?7 l4 A7 \3 Le.g
- K- A% p8 ]# o b* t6 s0 @/ g; \; O* B w9 F" X9 k
编译不过' R2 q; Y" i7 i9 \: R4 Q6 w) ?$ b& d9 U
void funA() { void funA() {1 Y: B* d8 }# Y9 O, M) w- I0 x3 C
int i,j; int i,j,x;7 t, ~/ e; S2 D$ C! _
i = 0; ========> i = 0;7 e/ ]/ x8 x8 X! v; N
int x = 0; x = 0;
8 i' s6 `, C2 o, B} }
, `9 u0 a5 R" v2 e' D
3 F, z# z' j0 n7 \5 n1 ^ f; ^2、链接问题
# C* n' p$ I- h+ L0 `
+ I9 p7 l" V: M& c ]; Blibx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用( ?& Q+ M1 x. q, N9 m) b5 L9 y
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用
0 o+ M& G S* ?. K1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用" ?' j2 J! h. v7 @
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用
0 d/ }- z3 P+ B4 Y/ M1 h1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用& `# v: f* z: E! l
1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用
: G! ^" h' E5 c3 q6 V* s: ~) P! s. ~, I ^6 z) O
由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。. x3 c0 i& {& U' B. j6 ^
把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。
|: b$ ?2 M% r" I
! W6 b) D { s6 \2 N) Herror LNK2019 unresolved external symbol _log2f
5 V. d T4 H! U" c+ d/ h另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :/ `/ O! C8 c; |8 b+ r6 X8 L8 s
1 T, Y! Z8 g$ l( x" C$ @
#ifdef _MSC_VER/ {! @# h6 u4 k' D" @
#define inline __inline
/ E( N; U7 s/ G#define strcasecmp stricmp
^% X# Z( i) X6 h#define strncasecmp strnicmp2 a5 w3 i; n' d3 R
#define snprintf _snprintf
2 e( U+ F. x8 C! F) x( D$ P#define fseek _fseeki64
/ W, r" M8 ^7 ]0 |#define ftell _ftelli64. o7 F( L7 W5 x* V* [. \
#define isfinite _finite
) f/ h" b% {- @4 `#define strtok_r strtok_s
% n% h5 M$ t' [) b( g1 f#define _CRT_SECURE_NO_DEPRECATE
; F m' c' `/ Q4 G- ^: C#define X264_VERSION "" // no configure script for msvc
2 p$ q4 T5 [$ y5 U4 d) K#define log2f(x) (logf(x)*1.4426950408889634f)" Y( o) N3 L' U8 V* v% q: G% r
#endif. x# v3 a- z" Q* ]1 B4 K0 Y G
1 o, S3 _; y- P
或 :
* k: X( V# ]& S8 Z#define log2f(x) ((float)log((double)(x)))/(log((double)2))
\. o( C8 n6 A8 d |
|