|
|
// [+] 09/25/09 (mm/dd/yy)" y3 I/ `9 X. P9 ~7 ~1 m- S
4 D5 \8 v2 J8 }1 H+ p1 ]1 j# v, t* T
下载地址:7 J; L8 f4 p/ x" [7 o% d/ C' f% f
http://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar c: ]6 H8 k6 u( ~1 |
9 d$ P5 O4 e# ]
总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。
7 l$ G }; V; g1 @/ a9 U1 ?! F6 T1 b+ s1 U
科普开始4 w0 \' m) E, [6 f
% ]! F- Z( _8 w5 @
1、编译问题# ]4 J8 n, y# u7 N9 k' j0 D# U0 ~/ w
由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。
9 c9 [: @/ {0 e5 z" q9 F6 d% j解决办法:在函数开头统一定义变量
7 V/ p, k; u) \! J1 @) [
6 d- s' n4 G+ r9 ke.g* ?3 c% \: a% _( U: @
6 I- @6 o G* M5 R. D5 v编译不过
8 r F; j; C, p' ]void funA() { void funA() {
# g* \6 S; ?; M' k: Q* I! P9 J int i,j; int i,j,x;- E6 M9 h! a' C9 j8 D; r3 p
i = 0; ========> i = 0;
' _; p. S- G# K: V" J) m int x = 0; x = 0;
: N) `" a \! e" U} }7 o) o. W- I" r
6 b+ L+ D- ]7 I; ^2 L* K
2、链接问题& Z# [7 u# B1 Z j z |
2 i$ d8 i! v, @. u4 @libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用
8 I' C7 H& Q. b- `2 t1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用8 o0 _3 u8 Q8 n+ \" ~7 X
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用
1 u6 i0 Q& H$ B; A1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用
) |! U. @' D. u+ j7 L8 t1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用
: N& Z, H. C3 n2 }2 S# M1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用
$ z& ?: F' Z% [3 J$ a, ?# A- I# J' h9 g0 N* Y
由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。( @4 _9 z0 B4 y8 _9 _2 @) t
把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。- M3 b& `8 B+ A& @; U {" `$ C
2 C2 c0 ^% t i' ?
error LNK2019 unresolved external symbol _log2f3 \. B1 V" {' ~, K! B
另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :$ d9 K! l1 ?" X+ L/ Z! L( V
4 A9 h7 T8 a; v' O' P+ c
#ifdef _MSC_VER
6 j' X$ I! e z/ b3 G6 ?" C6 D3 M* c#define inline __inline, b2 _1 g, q6 S% ?, C
#define strcasecmp stricmp
# m$ c" G8 ?" c/ B! F. ~& s#define strncasecmp strnicmp
, C+ s$ x0 w" r' {; L" R#define snprintf _snprintf c9 ~, m2 j! A: Y
#define fseek _fseeki64
" A; X. ]. N. P6 w/ S1 e#define ftell _ftelli64: R$ m( t1 L9 y& j* W }
#define isfinite _finite2 `7 K( O4 g( `. S. d; S) g
#define strtok_r strtok_s! I% Y$ _1 I! ?% `, q4 S) H' ~
#define _CRT_SECURE_NO_DEPRECATE
: W2 E% N! ~6 Y9 H#define X264_VERSION "" // no configure script for msvc* g! C, E7 D& V9 m5 r1 L( c5 D0 g
#define log2f(x) (logf(x)*1.4426950408889634f)
% t/ {- A& k q- S) q% X#endif
R! L% p# c: c- @% N; ]( j! J% D1 Z' ]* S
或 :9 _" x8 d' x X* |
#define log2f(x) ((float)log((double)(x)))/(log((double)2))- ~+ y. \# N& I$ F) c U
|
|