|
|
// [+] 09/25/09 (mm/dd/yy)
; ^3 T# Q" e/ t+ `4 X; C" U$ ~2 y
- f( q' F8 E+ ~" ?! v: K7 w下载地址:
# ?1 B y/ o2 d/ p) l0 ~. vhttp://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar
/ j: J6 e) ~' X1 h$ Y- e2 Q( ]0 I1 w
总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。0 r5 |" e1 ^* N
) }0 {# K4 v% O4 a& |6 n
科普开始
3 _$ A2 f, v U2 R4 Z* U2 ~; w
! U B' o2 D2 `1 X1、编译问题
( x8 D# D+ e6 \: u# A- z0 U由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。
r1 D. p- C v解决办法:在函数开头统一定义变量
. |: n) \: g9 C" R" G
5 o. {! l( _# pe.g
! p8 r. {7 S3 C
7 u6 \0 r2 N7 j编译不过
" C1 W' l! } `# Yvoid funA() { void funA() {
2 J, b% z8 p; U4 m" A int i,j; int i,j,x;
9 ?6 l1 Y e* P5 p% z/ x- M i = 0; ========> i = 0;) b. Q; `/ X# g0 Y& v& E2 c0 y
int x = 0; x = 0;' |' k; R3 o. W Q4 [2 M
} }0 y+ D% ?* O+ _# v" L) e! O
* M1 v: m# c* D. i2、链接问题
. ` n0 L$ Y0 ^0 Q2 i( k- g
. ]3 M E# K9 w' Qlibx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用1 F6 V7 @, O5 c! F. Z
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用
) I/ t- B* P1 {2 b8 c3 f( f9 c, y p1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用9 v% I5 O- h' l
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用
. I; S; c' O+ K: b! T0 u1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用
0 ]: ]* f% G8 m/ K4 Z1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用2 q) r% x6 e, _! O
" F% E4 W% H. `3 P9 \0 N9 r由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。: F: D4 D* k3 L4 N$ J
把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。
" m. n& t1 N) g0 u# X1 g* O& M% f! ]% n: Y/ g" ~
error LNK2019 unresolved external symbol _log2f
. m5 |- c7 I' y" Z# ~, {9 b( M另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :
/ a* T" [' W/ ]+ F% ]9 L' y. Z4 p1 n& o* c3 H+ G6 o
#ifdef _MSC_VER
! \, w6 b* P7 t7 Q H#define inline __inline
7 i# q" F- A2 v6 l#define strcasecmp stricmp
3 |& X" C$ k6 S5 g#define strncasecmp strnicmp
6 R" m1 j0 D3 g. t" U% _, e#define snprintf _snprintf/ J# z A$ k2 S$ l9 f
#define fseek _fseeki64
% _1 P5 C; d! T$ `/ ]: }, y#define ftell _ftelli646 @) { Y% A# t6 u5 R) ]* c
#define isfinite _finite
1 l* u' w4 B: L- H#define strtok_r strtok_s
. m9 x' }- F) s7 K& y7 `#define _CRT_SECURE_NO_DEPRECATE3 s }0 s6 I: S; J3 B; k6 R, r8 Z1 D
#define X264_VERSION "" // no configure script for msvc
: [2 w4 Q+ u5 V2 o. B! ]#define log2f(x) (logf(x)*1.4426950408889634f)
" [0 u9 G0 `5 x- F. q& L#endif
- m9 q+ r0 g5 E( s i2 h0 z% U. {
或 :7 l* K1 Y1 b5 _* k9 x4 l
#define log2f(x) ((float)log((double)(x)))/(log((double)2))0 o, a9 V8 l. ^$ j$ `. z- d; i6 j% \
|
|