|
|
// [+] 09/25/09 (mm/dd/yy)
. L. Z& V6 n* P$ q' G( L2 S& d4 W! e C# H+ e
下载地址:
: K; Q# w& ~( H1 T( Z$ ~5 o' Ihttp://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar y2 x V G. R, r/ }5 k
4 @& j1 f' t4 H+ K- P& ^: t( l
总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。
0 e8 n1 Z6 A6 n
& x) w% `) e( `% G; E/ o科普开始
) Y* m) J7 n3 N9 X$ e% ^
2 H& i+ w& x% F) G0 V" y0 B. G1、编译问题
% X& Y1 H& W# ]" ]3 u/ P$ M由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。
* ]$ A, Y0 x9 ?' P( F. f8 C+ F解决办法:在函数开头统一定义变量% c& |4 j3 k0 [5 d$ ^9 `- w
' A/ K1 k) P- ^% c& }9 a% _& _e.g
$ A9 N3 v2 h: o/ P2 a {
9 d# l8 G! b ^编译不过
* f( H& {4 [, evoid funA() { void funA() {0 Q% @% v6 s, z0 } C
int i,j; int i,j,x;
1 \+ O ^3 y/ R j4 Z" L( c i = 0; ========> i = 0;
4 d7 W) s. P0 p9 Q& Y/ l% T1 x int x = 0; x = 0;& ^: ]7 g, I% L: ^
} }
2 p$ x, l0 j% b# e7 H# r
: X1 y- F6 ?( t, |2、链接问题
L9 K# R& ]* Y% H. S L u5 T6 d* M6 M1 E
libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用) G/ q6 {# @1 n4 p) B
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用
& `, h2 ]9 V7 S1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用4 s5 p8 f) j: y- w; T$ F
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用# n/ w T8 O* h- [% L
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用
5 o2 ~; y7 B7 P" E: e# M. Q. S9 S1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用
# s2 T; {* k' K6 u+ g
# B& f4 Q& o4 g: ]* o0 n% A由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。3 K# R5 P, ~- e+ j; Y+ L2 L2 L0 q. Q
把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。! @2 E& a& z, \5 p U$ K8 o
( [" \, D' }# [$ n7 d5 X3 F; W; \% F
error LNK2019 unresolved external symbol _log2f+ i- ]3 } ? s8 @- S% j9 Q. h7 f
另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :
' p' F0 C/ i p* J9 p; f e3 |& l& x7 x# E8 c
#ifdef _MSC_VER3 Q: \. j6 K: Q k
#define inline __inline) ?: v. f. n3 z2 @
#define strcasecmp stricmp
3 u8 j+ O+ T" d- p" D#define strncasecmp strnicmp. N# B8 t+ v- q- C5 d4 D+ q
#define snprintf _snprintf
7 y3 Y' Q. B5 u/ |+ b4 i#define fseek _fseeki64
- \6 M4 t8 c4 P; m( C) t; y#define ftell _ftelli647 k' \& ^# q$ r7 f
#define isfinite _finite
0 A8 u+ g6 Z" e1 x P' `! l# }#define strtok_r strtok_s0 N8 s+ Y: m V3 O L0 w
#define _CRT_SECURE_NO_DEPRECATE
) O- ?. V* L, W! H; J#define X264_VERSION "" // no configure script for msvc
* h" C$ L, P$ ]6 ?) v#define log2f(x) (logf(x)*1.4426950408889634f)# _; x, f1 e( M0 Z C1 a
#endif
1 x* u; H, m }" Y
% x: S a3 {9 y: \3 L或 :
2 Q& I8 L: Y' |#define log2f(x) ((float)log((double)(x)))/(log((double)2))
; t2 A; x* Z+ R5 M3 T4 P |
|