|
// [+] 09/25/09 (mm/dd/yy)0 _7 k& ?* Q* z
7 ^$ G6 e* Z7 g+ w# ?下载地址:
6 q3 _' F) P6 b( D" I3 R0 ahttp://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar
9 B' z4 l& q3 q1 x7 W! E3 a* J9 Y2 N8 T) j' j3 F( q
总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。" |- y9 p& `* Z/ n# l1 i+ D5 a1 X
8 j1 g5 _: y4 P) ^+ t# u( b& T科普开始
8 Q- u& F+ r1 a4 c
0 i8 o$ T, {3 `" }5 x* r& v% _1、编译问题! Y3 ~: _9 {$ H
由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。
1 O5 g; }( z; m' w解决办法:在函数开头统一定义变量- u9 E2 ~; I; N B
2 B/ p) n- t: k1 O! w' V4 R
e.g
# @6 C' u5 w4 u3 I! I& Y! X- I0 ~2 d3 G4 B& z7 `
编译不过
# m% ~# n. Z' ~% F5 yvoid funA() { void funA() {
9 [* m+ F2 B* G; D' d int i,j; int i,j,x;* {& [. C1 K2 z9 @
i = 0; ========> i = 0;
- N; |' ?# ]( U) T. |8 q& ~ int x = 0; x = 0;; j+ z1 S; _3 X. z/ u& C: @; |. Y
} }
: ]8 N4 |3 r- n* {, ~8 [8 U& X. w$ M# w1 N6 H% ~) S
2、链接问题
2 D( d0 }( j0 P: i" ]# J4 z- x7 _" E5 |
libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用; s1 X8 c# {/ m' P, P" W
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用
% u/ X3 p5 l2 `1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用
: P# V- G. p% k% \5 Z& x$ D1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用# o+ \8 v# \: W' |
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用1 `9 [' a' p9 ~! }- r5 m
1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用5 b. i5 _3 Q; }% A0 r) h. K
$ @1 { J! V. g8 a p0 Y
由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。
$ [2 _; a6 s- B I" C. j2 E把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。1 O6 W3 k' z# F0 t" T
3 D( R, k, N/ `
error LNK2019 unresolved external symbol _log2f- d$ r9 M" a+ v: o! n
另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :3 P/ B# a9 J7 f: Z) d' z" J) A0 o, l% V
' U9 y- h8 E4 ]0 @1 j9 g' t#ifdef _MSC_VER
8 X4 |/ `, M8 R/ N# ~, ^9 k9 E#define inline __inline
$ ?6 l; A; D# M$ d* Y#define strcasecmp stricmp
9 E# O0 z, |# p$ d3 X2 h#define strncasecmp strnicmp6 N u: o- o9 }7 ~) Q3 L! ]+ H
#define snprintf _snprintf0 v5 e" y$ x5 N! [& O: d
#define fseek _fseeki64
: j; h2 F9 q+ K# y. ^#define ftell _ftelli64
b( t# M6 ?" [ r3 L#define isfinite _finite' v3 W4 r% r/ x% o) @& m+ d% g) d
#define strtok_r strtok_s- P9 s+ a Q/ d: U$ L0 R
#define _CRT_SECURE_NO_DEPRECATE
- t: f' s+ U" x#define X264_VERSION "" // no configure script for msvc
. s. s. ]' p7 @0 G$ H#define log2f(x) (logf(x)*1.4426950408889634f)) a" Z" t3 Y! [8 U: G
#endif
! `! \( u5 u- g, Z0 M+ D. |2 ^- d2 z3 b# I |2 t1 J+ e
或 :
- u2 N6 C2 B8 l5 n; F' [0 U#define log2f(x) ((float)log((double)(x)))/(log((double)2))) s2 F) K3 A% e5 n
|
|