|
|
// [+] 09/25/09 (mm/dd/yy)2 ]6 X7 ~4 b" E, F: Z5 H ^2 o( C
1 y% A, Y: X& x! m下载地址:/ B9 W& M. j2 C2 G; f1 R
http://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar7 m2 Z. B& H+ I) K7 F; Z8 @
% R8 y& D* L3 C 总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。
- D$ J4 l3 w& |1 h+ a! x* |
/ r1 }8 W% ]% D& g9 P5 E. S科普开始: }! E- K0 S6 ]7 x' ?( D
" M4 J8 O6 ]/ t+ S( S0 X: k
1、编译问题
( A4 Q/ ?, U9 X( e0 L4 R. e由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。$ z; h8 p: M8 y4 |, g0 h
解决办法:在函数开头统一定义变量
5 a$ n+ ~9 T( l1 U
3 f1 \ b) `; ?( J3 R' [. He.g
1 }6 g% q2 v- G- j$ ?( k" s! I) Q6 ^
7 e/ D) F: e& t% ?" ~ Y编译不过
. Y- [4 F& W6 W1 [void funA() { void funA() {
( u9 W9 H/ v, S! Y0 b0 p. Z& f int i,j; int i,j,x;
$ q7 A& _6 J7 [. i i = 0; ========> i = 0;
6 P+ e K1 T0 C( r# c" v4 l s' r" W& z int x = 0; x = 0;
6 P; ?) S7 x d7 D} }
2 [' ^8 y4 \! K6 T0 @3 K2 R! K" F; w9 t! m0 e
2、链接问题# o: u4 H* |' y" y/ D
; o, o4 k1 U* N. m$ Qlibx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用
7 ~: O3 {! s W/ R1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用3 A8 J- e6 f- f. H
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用
1 O$ |& N# R4 [1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用
3 u ?0 e! Q3 f- R D3 v- q- x0 l1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用
: e y" Q/ e: w1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用- z8 ^4 {% e' _# f1 M
& D1 @. h: _( V9 f
由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。
+ ?4 D, S2 T v. S把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。
1 H6 t/ g3 s! Q7 M; r3 F" }
. a% J2 g5 d; A& h& a* h$ Z0 ?error LNK2019 unresolved external symbol _log2f
, b* {7 h7 V: f b4 z C另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :
+ |! v5 k" u6 V, m- N; B7 m$ n* C, h
#ifdef _MSC_VER0 T P8 p7 a) j2 q S# p: B
#define inline __inline, s p$ }# @- q. `+ {4 y0 B! Y9 j
#define strcasecmp stricmp0 q( F3 y( j/ {2 D8 R& a& }
#define strncasecmp strnicmp
+ g% m! c! V. {* y" V: L#define snprintf _snprintf8 l3 z+ y6 W, @0 l- K3 X
#define fseek _fseeki64& i( E8 o5 {6 m% o2 f) S# e4 r
#define ftell _ftelli64
1 P+ n; ~6 L$ u. \1 U; V& i#define isfinite _finite
; ~ P1 C" _& r8 i* V, W( O; S#define strtok_r strtok_s
% V' h! i. _* r7 p+ h2 [#define _CRT_SECURE_NO_DEPRECATE& _3 q. g5 `. Y2 r2 \
#define X264_VERSION "" // no configure script for msvc
) ~ X- U6 R8 |; ?#define log2f(x) (logf(x)*1.4426950408889634f), |$ G6 P9 I6 z! P% J$ b
#endif
+ U0 K: ?6 x. c0 G
, X. u% `9 ~, G E/ e+ a" O或 :
; \6 y5 `$ d/ \#define log2f(x) ((float)log((double)(x)))/(log((double)2))0 x; c: I6 T7 v% }
|
|