|
// [+] 09/25/09 (mm/dd/yy)" X% S5 c: M! {6 z% o
# U; b1 j2 r. z8 X
下载地址:
4 G# V: r1 X0 C! thttp://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar# Y: s* H* n. v& G! w
$ Q) x0 u) w( T) r0 ? 总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。5 Y' J6 B! ?$ O2 t
( Q: ]2 y7 z( x1 h) E* }
科普开始2 a$ `; H0 f5 a* B% E5 I8 N
7 H" C& C8 [1 ~, v- n, K1、编译问题+ P8 \1 _" Q c% O, E$ [3 w& a
由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。
% E& ~8 v6 f6 A; w& |& x% f8 x, ^解决办法:在函数开头统一定义变量; |" m' r4 K; G
f: t: x8 e$ F
e.g
' c; e; r; m/ p+ Y9 G; A; V/ m1 }. L# q: ^( x2 G
编译不过7 l1 a$ ], c! x- E: I) k
void funA() { void funA() {
$ d2 ^" m$ ^( l r2 y' @9 L0 ?2 Z/ w int i,j; int i,j,x;
9 v+ ?9 B1 q z2 p3 S i = 0; ========> i = 0;2 g# p- F$ Y0 V7 t$ g0 j
int x = 0; x = 0;5 x: q* n, F* i* C/ O* D
} }# R- d% s# L- b+ H3 b+ }( ^; A5 Z
9 E9 C1 }4 R+ M; ]: j8 j9 ]
2、链接问题
# e0 x$ b, {! V9 I- C
2 [7 Q6 i8 m+ K" I9 Z' i$ l3 Ilibx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用) I+ y& T3 j$ ]$ R* }7 K: e
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用
3 S6 k6 E, @# y/ l' ` B' X1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用- Z7 y3 V* w' Q# g" p. W
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用" N* Y+ w( [3 v0 Q
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用1 `! i, ]: y3 P$ K
1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用$ A: U! z9 a3 s/ D9 T
$ N( s% S1 j6 }) }" `4 F# B
由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。
! q0 ^0 L7 \% h2 S, W把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。+ m' P" j' s6 }7 e
. d6 f) H% E/ z: lerror LNK2019 unresolved external symbol _log2f3 J# D6 F7 T8 B7 [; y& C
另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :
8 N9 j2 s2 A; [3 u: n
7 A+ I6 K) N8 l6 x0 P9 B0 s#ifdef _MSC_VER7 p( N/ M: x* \
#define inline __inline+ Q: | l$ a: ^# y
#define strcasecmp stricmp6 }0 r$ u8 ?6 _8 `" g, t
#define strncasecmp strnicmp% I6 V4 `6 k# a$ n9 o- E; O% T
#define snprintf _snprintf
, J- R3 Q& E2 ~' |- x2 ^4 O2 c#define fseek _fseeki64* P% I1 H; x4 R9 M
#define ftell _ftelli64
' I9 Q$ h$ T0 l7 P/ \#define isfinite _finite, ^& L( V5 v0 e+ U
#define strtok_r strtok_s% d& u9 i4 o( q3 x0 y
#define _CRT_SECURE_NO_DEPRECATE
3 D3 c) I+ v2 _9 e#define X264_VERSION "" // no configure script for msvc
; [9 X2 y( T7 m; z9 U8 X% X: ]#define log2f(x) (logf(x)*1.4426950408889634f)7 h/ A; M5 C4 h- o. v& z
#endif
# D: |3 _% ^9 X3 F: a3 W$ [; i* E3 }
或 :
) z- C2 z* ^( @# f#define log2f(x) ((float)log((double)(x)))/(log((double)2))+ r+ n7 }2 Y. M9 F- o
|
|