|
|
// [+] 09/25/09 (mm/dd/yy)8 G4 [ s. ~. `; m) O) _, n2 z
% c) o# _3 ~; p/ z5 C& `
下载地址:: o: z: T# E% S+ {
http://ttpublic.googlecode.com/files/x264-snapshot-20090216-2245.rar
3 \9 `$ @' v- W0 g
2 e7 q* z7 _1 J) _ 总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。* s9 c1 ?( p6 d
- ]2 l6 z; t! j7 c
科普开始
" E) O& J/ ~ }) W# w3 G1 i# x! D; u
1、编译问题
1 _- w% x% G8 k. S" h2 b4 J由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。
! Q; Z7 @! E# C" v4 n解决办法:在函数开头统一定义变量
# w' W9 K) p0 E1 K9 Y* s3 t) @2 I- W5 L+ W2 r: u
e.g9 c: C3 B' N* ]+ e* r4 z1 G/ y
9 e6 Z+ `# @% [8 L9 d编译不过' ]) h5 s- ?* i: W) F+ ~0 h# `# H
void funA() { void funA() {9 G6 d9 Z1 ~- o* ~; [: m
int i,j; int i,j,x;9 f% P9 ]% f/ ~( J2 I; a1 K$ Z
i = 0; ========> i = 0; X: q2 O7 @6 e# y
int x = 0; x = 0;
" i# _( M( N! q; E5 _} }
. a3 i* ^( \: l2 B4 g: }' _& p
3 Y, P: O' u! n2、链接问题
. K3 s; v1 f3 Z) W- m. @$ p
# ]' T* w9 J9 ]" J. ]libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_init,该符号在函数 _x264_encoder_open_75 中被引用3 `* d. h0 s5 t+ L" V1 C, j) D7 @
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_is_empty,该符号在函数 _x264_encoder_encode 中被引用
$ t9 G, k: |0 s% s/ L1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_get_frames,该符号在函数 _x264_encoder_encode 中被引用
9 l% w: L1 ]/ v6 o1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_put_frame,该符号在函数 _x264_encoder_encode 中被引用8 g& u! a7 N% U! p t" y! w
1>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_lookahead_delete,该符号在函数 _x264_encoder_close 中被引用
6 d1 Q: }$ G! u! [$ `9 g5 u6 G; C1>libx264.lib(analyse.obj) : error LNK2019: 无法解析的外部符号 _log2f,该符号在函数 _x264_mb_analyse_load_costs 中被引用% K) K# [+ ^" ~" l8 _
' [$ d& Y) d6 o4 \+ c! B由于最近x264_param中新添了lookahead,而对应Win32工程是没有及时更新。3 R! C4 J m2 [. G
把encoder/lookahead.c添加到工程里(和encode.c放在一起)即可。
8 Y7 ~( m. @" G5 j
( ]/ g, z0 y1 B$ {: ferror LNK2019 unresolved external symbol _log2f
( e* ~# {5 e I另外,如果最后出现error LNK2019 unresolved external symbol _log2f,在osdep.h里定义一下log2f(不知道性能如何) :
* A1 y2 d- @8 v
, F4 N: a) y# r+ Q3 k) S0 O1 o#ifdef _MSC_VER2 h8 _: E1 o# v3 s
#define inline __inline
7 Q& F- H' {$ p. s$ U ^1 h! s#define strcasecmp stricmp
# |( k& \7 c7 {#define strncasecmp strnicmp8 v& K( Z. n8 r& w4 c) B$ L+ ~+ M
#define snprintf _snprintf
3 h! ?. F) ^) x' d#define fseek _fseeki64
' x3 A: X4 Z8 n; Y* a; ]#define ftell _ftelli64$ d+ z# I b9 M
#define isfinite _finite0 h9 H; m; k& p0 ?7 F$ a
#define strtok_r strtok_s
% C* N5 U- d- v#define _CRT_SECURE_NO_DEPRECATE
( x8 I2 u( [4 C#define X264_VERSION "" // no configure script for msvc
: N0 e1 ` j! d/ r# x#define log2f(x) (logf(x)*1.4426950408889634f)& e& r/ g# l1 K+ j) l
#endif) @( \# X' D/ X
# R5 x# V3 m( o9 j$ d8 H或 :7 X; v& z0 l/ q- @! H* k
#define log2f(x) ((float)log((double)(x)))/(log((double)2))
; \$ g6 x. ~8 E- i |
|