|
|
// [+] 09/25/09 (mm/dd/yy)
- e% {, L1 T6 ]5 `" S+ k" W) k* p4 i" M3 ?* N/ M, x) a# e Z; G# D$ D
下载地址:6 m0 S* K7 [! k8 f. F2 \' j
http://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar" l5 I6 X7 s+ o& Q, z& A. p
/ x% o# l5 j; X# i" X7 \ 总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。
7 ~; {, `: {& z8 C& q* D* V* F
) C6 C0 o2 k7 U% G% G1 `6 n2 }科普开始
- v# {) @( A ]2 Z; Z1 n
2 \4 A! q+ p, m; H9 @* m' Z0 V1、编译问题
: {7 @5 A& |# ^6 R. R由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。
2 ?0 N, M- N$ c解决办法:在函数开头统一定义变量0 A! n+ V N# S* ~$ @
. Z7 ^5 A. C0 L8 z- [e.g
% P3 ?% {# F8 Y' B9 Q C! W3 s/ b# F; H3 j% s! `
编译不过, f0 E( q) R, T( s: T, F. R
void funA() { void funA() {
3 s# ?1 @( h7 |$ Q% G int i,j; int i,j,x;
3 c& E7 G# V7 M7 d( m! e } i = 0; ========> i = 0;
; ?7 `+ H- }: T- q$ m% i0 G% a, v& _ int x = 0; x = 0;
6 t g2 O0 e# p! [; p* M4 i7 R} }
0 x b" p& k' v; S% \; I% B' ]8 E: n) Q2 Y3 }) O; w2 m- [
2、链接问题0 x: A1 }4 W, ?
& V/ P, v0 {9 F$ s$ K# p Ulibx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用* H6 e. {& I$ `/ q( u: `
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用" k0 O& j1 V- d. a3 O
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用, T) |* ?3 F t1 a
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用) D2 s# }3 ?, K4 X Z& N
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用$ X' B' v( r3 d
1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用 f% l$ B% J7 d. l2 K
- Q' B) }# [' D8 @! F4 d- f9 O
由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。
( M! p2 e4 R; ^把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。
5 N3 M; Y: a2 i2 Y9 n l1 p7 L
/ J+ E2 |+ c3 \error LNK2019 unresolved external symbol _log2f
! F: I! y( y4 |6 Y* Z" Y另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :2 Q+ P* G& e7 \) H# j. a
. A" K3 I9 C) x0 T2 s#ifdef _MSC_VER
. B, V% t2 U, V#define inline __inline1 U! l! @" x5 W8 g* B2 j
#define strcasecmp stricmp1 H6 j K, v) c5 W% @
#define strncasecmp strnicmp
! }* G& y" K9 D3 w8 c7 p" q#define snprintf _snprintf3 Y5 b5 H M/ `
#define fseek _fseeki64: |+ a5 f a0 h
#define ftell _ftelli64
' T- t/ A: W0 R/ ~#define isfinite _finite E5 }+ i6 ^( a1 E2 B H* C, C
#define strtok_r strtok_s
0 o" L6 v# e' X#define _CRT_SECURE_NO_DEPRECATE
5 l' R' X5 _' _2 n- [#define X264_VERSION "" // no configure script for msvc% b- Z1 T5 K2 m8 }/ r. x3 J
#define log2f(x) (logf(x)*1.4426950408889634f): ^ k6 h0 X" L4 }- s' F; u
#endif5 E9 Q( C# u4 }& u- B( h0 [5 _/ {
# s6 E% U, \* l7 a: D4 Q* c或 :, z; v9 d. g4 N5 e& y! C( s9 h- T; A
#define log2f(x) ((float)log((double)(x)))/(log((double)2))% V2 D0 r) e5 i! l( a7 J
|
|