|
|
// [+] 09/25/09 (mm/dd/yy)8 A, ^3 H* V; @5 x% q( e3 l2 k
2 `: W a: i* U/ g下载地址:3 o4 W) v% T- X: `
http://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar9 _+ b/ Z( @* U L% E" t# K2 }/ p
2 X o1 j+ R4 ~; h! g 总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。
1 h# f/ Y: g; Z: o% L8 a9 I' L
# v2 E6 {6 E* _- s; ]$ z; ]2 M科普开始$ J A; M( e" ~! n! O
% T: ?0 {& D& k+ v9 I9 r2 b1、编译问题
# D& o; c4 T6 x由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。
1 q+ Q; [8 c: T ~+ I0 |解决办法:在函数开头统一定义变量& Y+ E, P( ^9 V/ p3 b" T: n7 Z
0 I% R( P7 t- g" s. we.g
; F4 w- r/ c' ^3 ^5 _: o
6 s& y# m. K Z `$ G编译不过
8 k% e2 Z0 c; S N& Ovoid funA() { void funA() {* u; y0 u# s' M( L
int i,j; int i,j,x;8 d: ? i+ n$ e2 ~
i = 0; ========> i = 0;
% t* I! @( l9 a4 S& d6 L# [2 H int x = 0; x = 0;
6 m+ L; f! j0 H" ?* t+ O} }
4 l7 v/ g4 U# m& i6 \- F
% ^4 R/ U7 J# d+ h- Z+ e4 m2、链接问题8 v& W/ ?! x7 b! w4 g+ U
# R2 {2 d) \4 R2 A5 S1 \
libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用. Z' e2 v& f9 A3 @% P
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用
% ?' K+ X% H. C+ k/ m; k/ A1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用
+ _" Q6 `* O g8 Z% r/ o1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用
: c8 E0 J; i' D' { q1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用3 D, {0 @: V) j; Q5 A" p
1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用
, c5 M! ?6 W9 _2 }6 R' Q& d* ~/ F! n+ j. t" Q
由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。
+ r5 o' y0 G$ K8 ]$ }把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。
6 d0 Y6 X2 Q7 k V* \, [$ z4 G& c
/ F; T+ y5 Z4 n- G. u( p7 ~error LNK2019 unresolved external symbol _log2f0 E6 ~$ S8 t: d+ A0 n' K W- z
另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :- ]3 b& p% B+ f4 M2 N
/ h: `% A6 |1 b! g
#ifdef _MSC_VER9 h4 d4 k6 _, e; M
#define inline __inline
' X; ^7 P4 c' K `* F2 b5 L( r {#define strcasecmp stricmp0 q: ~( p! ?% }" v: D, g
#define strncasecmp strnicmp
4 T: a r, f7 z#define snprintf _snprintf
- z2 v0 k2 |9 f, B/ D$ x# o- C#define fseek _fseeki643 ?9 q* u" b. `/ \6 c% ?
#define ftell _ftelli64! [) i; |: Y% J# H
#define isfinite _finite
; }+ C# X% I/ J( k/ ]1 s#define strtok_r strtok_s
: C( o8 {2 b$ [2 G, B9 V) I#define _CRT_SECURE_NO_DEPRECATE& ~! g6 j/ k: Q
#define X264_VERSION "" // no configure script for msvc; e$ v& [/ ?0 h
#define log2f(x) (logf(x)*1.4426950408889634f)
1 M+ M; N( M' t+ Z# k#endif0 h7 S( X/ K1 p) }( K; G9 u
8 s9 ^: P& S3 S7 w% M3 J8 {) a5 d或 :) `! _5 M- ]6 j, R% L
#define log2f(x) ((float)log((double)(x)))/(log((double)2)), z) x5 {% W1 ^4 s. T: E" {" `! x( E: X
|
|