|
// [+] 09/25/09 (mm/dd/yy)
9 v7 h5 j2 O8 b7 ^7 A3 O1 M! _" r/ c) x
下载地址:
8 R6 |" C _; r" z% W) Ahttp://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar
6 S: [* N5 J+ \7 X4 N6 j0 T7 z! H) @' N
2 z4 j; P: v0 [2 k, S9 z 总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。
/ |! W$ B' X( F6 e9 t( U+ R. C. l. t( {( Z' F6 w$ V6 a& R4 S
科普开始
# ]- o4 T9 L0 _: Q& z: J; i4 ~. o$ y. ~- r5 ~/ b) a6 v
1、编译问题
) s9 Q9 T; R5 g5 V9 t, `由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。6 ~# l7 M$ m( @3 P% [& J
解决办法:在函数开头统一定义变量6 v- X$ r7 G" E5 U+ X
8 C7 Q( V( s% z/ P2 d& re.g9 x( Y) B6 P$ p) }9 L
( w0 B" D2 ^0 k% ^' B. G4 h {, ]& ~编译不过3 h. o. Q" g' P0 ~
void funA() { void funA() {3 H, G9 d% R E
int i,j; int i,j,x;
* z* }* k. @2 h6 n i = 0; ========> i = 0;
4 E4 E4 T9 C2 | int x = 0; x = 0;, t6 l) Z l( g& L" t2 ?5 n9 ^
} }
% c9 S8 t$ A, F$ K' Y6 m2 \' O2 `, |( W* t( e
2、链接问题9 ]( J+ G) K' l7 f) j7 V" k: n# a
' q# u% i, ?; P* K* u8 Blibx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用
0 _! e% G; f* L( G% [( d. b H5 E1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用
. T, I: I8 A; H2 [' D% H1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用/ D6 ~) Z' x8 K
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用9 S, s! ~! u% w: L
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用
( B6 A0 e8 R8 u" k" d a, w" d1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用4 y7 g, i: r0 y/ P
# t4 g) D$ D& D
由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。3 Z( I$ D4 z: t0 d! X
把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。
+ J [* U9 m% @+ s/ U1 w: M7 @# A4 l2 s9 C1 w! h* Z) u4 e
error LNK2019 unresolved external symbol _log2f1 Q f* I) O# k/ n4 j: o& A
另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :
; F- U- b: ^. P$ ?4 t) ~% Y c
# b9 s4 T: \ t7 |* ?#ifdef _MSC_VER& g4 R& h7 ~! y
#define inline __inline$ F4 H/ h' F+ v2 P
#define strcasecmp stricmp# k u! k/ u8 d3 _' U5 o
#define strncasecmp strnicmp
- Q; |- i! P u s, F. D#define snprintf _snprintf
3 ?- S ]! A C# s7 z#define fseek _fseeki64: J3 [9 ]+ D5 i4 j! ]
#define ftell _ftelli64: v& Z1 x! N4 r* K
#define isfinite _finite
3 ~" W$ j0 c( W/ e; g: }7 }#define strtok_r strtok_s% R# d6 C- i- u; P! z. T
#define _CRT_SECURE_NO_DEPRECATE
6 k( l5 d% T8 }& }* A) ^( N#define X264_VERSION "" // no configure script for msvc& G' C9 }* P# X& ~4 r/ k
#define log2f(x) (logf(x)*1.4426950408889634f)% r* s, n" j! m. a' X! @' q) P3 c
#endif
# f1 U7 N4 \' R# t! o# t
. \" I3 k) W- U) ?或 :# m( B2 x/ ~% [3 E! d+ Z
#define log2f(x) ((float)log((double)(x)))/(log((double)2))
% ]- x0 K+ Q6 u& I" u, _ |
|