|
// [+] 09/25/09 (mm/dd/yy)) S3 M2 z6 G+ j
1 i2 u- F D) `5 t! O p5 ?2 y下载地址:; v9 i" K# j6 e. \2 m0 V
http://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar2 ~* Q+ p/ d1 ]) n. I2 \
; D4 q* P( v+ S0 V! ~* r" N) y0 o
总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。
$ D0 s B. v2 t6 } p4 G
2 T2 j' N( T0 j9 o0 S }科普开始
; _- C; i; S$ K9 I2 A6 |: L6 h k( j
1、编译问题
4 R. A$ [6 s* i由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。8 ^5 ^; U* M9 _1 Q, @) }! N
解决办法:在函数开头统一定义变量% E" X8 ~: p: m9 P
" }9 V7 e# @" h" q1 ~! o$ Ye.g
) O: k! q8 u. ]2 G- p* n8 U
- [& J" e$ P! Q) w f编译不过
8 R* A' H @7 G6 \& Y+ b; lvoid funA() { void funA() {
9 ~9 Y6 g( M3 e# o6 N Y int i,j; int i,j,x;
9 n- O4 u, P1 u% q& U+ I i = 0; ========> i = 0;( |: e! _, s8 r' c2 l" A
int x = 0; x = 0;
+ @4 V9 @( ~0 |} }, W* ~, _" [) k% n' |8 ?# C) v
5 V" d' }) ]# b& I9 W6 A" u
2、链接问题; J& O1 I/ `" |
. s3 Z# Y$ ?) h* ylibx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用
8 B/ J$ @/ M/ s3 i9 }' D1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用
$ W: X+ u a& I) D+ R1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用
2 x' i. \7 p8 V/ G1 R# T1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用 U2 P% n i$ U
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用
$ a# J- r+ [$ f' P$ D/ Z2 H |" c1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用
% N' A' X2 g/ z% H6 C0 m8 w7 J q( P6 Q+ |- |1 b
由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。
% \2 n1 b- }5 s% P/ i把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。
5 \( J8 N/ Q9 K E
+ U9 X, Q6 f5 J+ v: serror LNK2019 unresolved external symbol _log2f6 ^- Z- P5 S; p/ H6 K: Y
另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :
) ? z+ e6 {9 V% N' \% n* C; u1 h1 S/ o. G ]+ i
#ifdef _MSC_VER. a" E6 R+ q' v, j7 J' b/ Q
#define inline __inline2 V4 E0 o: t, B* m6 ?) o
#define strcasecmp stricmp$ P/ S" b& d% X/ q
#define strncasecmp strnicmp6 e0 G3 x f: c5 Q. n9 E M- a
#define snprintf _snprintf& j! O. \3 V! y/ C6 D2 T* X- s
#define fseek _fseeki64
- [& P$ Q' C9 c# ]9 p8 i$ J#define ftell _ftelli64- }7 ]9 s" u n8 f# h4 k4 h
#define isfinite _finite
% z) N. ^" X% [* {#define strtok_r strtok_s
- I5 U6 X7 u9 \+ ?. x$ S#define _CRT_SECURE_NO_DEPRECATE e5 n, e# ]- ]% A( i2 }. o
#define X264_VERSION "" // no configure script for msvc( N4 p, R4 J8 a8 R* V* g+ T
#define log2f(x) (logf(x)*1.4426950408889634f)
, N; c% d4 L7 b. T$ v#endif" t- W# V2 r4 @; l- w
# @9 F5 V1 R5 _ s/ {: k
或 :
! f" o; p- y$ J1 Q#define log2f(x) ((float)log((double)(x)))/(log((double)2))3 A- L) e' Q( _7 I
|
|