冒险解谜游戏中文网 ChinaAVG

标题: 【原创】scummvm-0.13.0编译教学 [打印本页]

作者: shane007    时间: 2009-4-25 22:38
标题: 【原创】scummvm-0.13.0编译教学
为了研究scummvm的汉化可能性,首先要把scummvm编译通过,并在此基础上进行一些修改。
  P8 v" m* x0 n1 |: x# b
; C4 e0 a3 i+ Z; P------------------------- / W5 \2 b$ {  o+ n# y/ B
准备工作   K6 T* m& G) _$ H1 o$ ]
-------------------------

+ F1 S' c* Q. }$ k0 e% H2 a) A首先到scummvm的网站上下载源代码
9 z, ^6 z; Q# D9 {* C. ]/ lhttp://www.scummvm.org/downloads.php#source + D4 ?0 O: N5 v1 t8 a3 `6 B
源代码约有10M大小 5 m, W( A, c( J0 a' N7 O7 O& P* m
http://prdownloads.sourceforge.n ... 0.13.0.zip?download
/ Y+ e- G/ ^; h$ \( d0 d  U* f% R下载后解开到一个目录里,可以先看一下README. ! z' m) X8 }$ o) e
里面有很多关于编译的信息,此外以下网站也有关于用VisualStudio编译的信息 2 a; ?8 L* j3 A* b4 D8 V; V- I
http://wiki.scummvm.org/index.php/Compiling_ScummVM/VS2005 2 ~) T8 q% |% z

/ I* Z& l& P, S: r------------------------- # Y9 g, j( b- A8 {
预编译库文件 0 \( c3 |+ T6 w# o: f, p4 l9 o; z$ `
------------------------- 8 z2 t! [9 u- q! K- W: y0 x; Y$ p+ Q
好,接下去我们逐个说明需要预编译的库文件。编译工具采用的是VS2003中的VC++. 0 w' {. P: {9 G$ j* n
- L# f) V, j: l5 r& f  J) K6 b
0.设置include,lib目录 . b( I9 R# J+ J  b
在scummvm-0.13.0下建立一个include和一个lib目录 # {' K8 g4 c8 k7 N4 p

* m( j+ Y. r5 |3 y* N在项目管理器的scummvm中点右键,在C/C++-->General-->Additional Include Directories里追加一个../../include,VC就会在scummvm-0.13.0\include中寻找需要的头文件。
) f5 g5 \3 d% v8 N: }& {在项目管理器的scummvm中点右键,在Linker-->General-->Additional library Directories里追加一个../../lib,VC就会在scummvm-0.13.0\lib中寻找需要的库文件。
  P+ x6 ^. C! [8 C; z) L+ N9 Q
( m7 C6 _9 H5 i/ G3 H4 @3 {注意,以上的设置debug模式和release模式是分开的,所以如果要使用这2个模式编译的话,要各设置一遍。
# m' P, L" x3 g' F. Q  M) p' C; y3 i6 B8 K. C
1.NASM ( |+ p' t8 _, V3 j, h
http://www.nasm.us/下载一个最新版的就行,如果可执行文件名是nasmw.exe,需要把它改名为nasm.exe。并把它拷贝到vs能找到的可执行文件目录下,比如\WINDOWS\system32。 ! Y$ V; c+ v. u% Z5 T+ F( z' U
vs能找到的可执行文件目录可以用以下步骤设置: , o, |* u, F  e+ f* w9 j; S' C
菜单Tools-->Options-->Projects-->VC++Directories-->Executable files ! Z0 M/ p1 b% F

" q8 b& y2 S0 S, K2.libmpeg2
* g% }5 |# ^5 a7 S( q  h
如果需要游戏支持MPEG2的话,就必须加入这个库。 $ E$ |( k- h" e
在以下网站可以下载到libmpeg2的最新版,目前的最新版是libmpeg2-0.5.1。 % ^# x* ^+ o1 m) T% {1 h
http://libmpeg2.sourceforge.net/downloads.html
! s( E  g% i4 _我用的是mpeg2dec-0.4.1,更新版本的用VS2003无法载入,故使用这个略旧的版本。
# h! i$ k" J0 r  g9 ^5 o建scummvm-0.13.0\include\mpeg2dec目录,把mpeg2dec-0.4.1\include的内容都拷贝到里面。
3 e9 I" V/ w8 m# r; B
/ T0 N3 z. X! j# W$ O$ e5 U3.SDL & u. k4 I) |- N' x
这个库是必不可少的。下载地址如下: 5 D; A8 G' \, }& `" U
http://www.libsdl.org/download-1.2.php
( Y- \  W7 p4 o. F  x% u, xhttp://www.libsdl.org/release/SDL-1.2.13.zip / w( Z5 T- t5 h6 z& ]$ n
目前的最新版本是SDL-1.2.13,解压缩以后,把SDL-1.2.13\include的全部头文件都拷贝到
. j& _) R+ w1 \3 v" `+ {& Iscummvm-0.13.0\include即可。 - t. n  h" ^9 c1 }3 `
8 ~% |$ q, O. R& \$ c8 p: ^+ ?
4.ZLIB ; f9 F) A; G/ ?( n
很多游戏是压缩的,所以要用到ZLIB库。 0 Y5 j7 S  ]- c' ?7 |4 l  k7 o5 [
下载地址如下:
4 y! ]/ y, [- G/ y6 n  J. phttp://www.zlib.net/   x3 Z8 k  C0 ^3 d4 i1 f5 `) S$ G9 C
http://www.zlib.net/zlib123.zip
( b- \( U+ o9 u5 H( B, G解压缩以后,把zlib123目录下的zlib.h,zconf.h拷贝到scummvm-0.13.0\include即可。 , @" u0 Q+ T) Y: S/ [6 f% F. }

* a' w. ]# L6 }; C/ T7 h+ p5.LIBOGG # s8 N* a. |2 J% T, m; P2 X+ h
下载地址如下:   ]8 o* e' [' y1 q' O
http://www.xiph.org/downloads/ * v$ L8 A* j2 ]  M0 D# c
http://downloads.xiph.org/releases/ogg/libogg-1.1.3.zip
& ?" N! n4 t, y, n  [解压缩以后,把libogg-1.1.3\include目录下的ogg目录连目录拷贝到scummvm-0.13.0\include即可。
# I2 ~) A, X9 E" Q  ?3 O. c3 k/ n7 ^+ N
6.Libmad 6 I- j8 X& _- H8 ?# Z! v, a
下载地址如下: 8 Z3 |0 Q: a+ p7 l& o
http://www.underbit.com/products/mad/
( L1 @# q  b+ d1 jhttp://sourceforge.net/project/showfiles.php?group_id=12349 6 Y6 f0 y/ D4 o5 O" S/ b" y$ Z8 W
http://sourceforge.net/project/downloading.php?group_id=12349&filename=libmad-0.15.1b.tar.gz
- B" ]3 C+ U0 x! }: Q解压缩以后,把\libmad-0.15.1b目录下的mad.h拷贝到scummvm-0.13.0\include即可。
) B4 m/ x! `  i: h) e; k$ S" S5 x: ^4 x/ z1 G- \- ]# @& c; o5 {
7.libvorbis   J, i' x& g( D3 w
下载地址如下: $ m- e5 V3 ?1 H% e4 t6 e
http://www.xiph.org/downloads/
; c& J; s; h9 a% Z& b+ i( uhttp://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.zip
7 |' T& S& ]9 o# x: t" c解压缩以后,把libvorbis-1.2.0\include目录下的libvorbis目录连目录拷贝到scummvm-0.13.0\include即可。 # `2 ?8 h0 n" b

* D3 t, L- |- T8 }* Q/ l& \注意: : Q! k, H+ z$ c: @
在链接时如果出现error LNK2005错误,在项目浏览器的scummvm上点右键,
( [  |: _% A! {7 z4 N把general-->Use of MFC 设置为 Use MFC in a Shared DLL即可。
3 Q8 q  Z, @% [! a/ c- n2 Q8 }% w, I/ W& ?
debug版可以编译成功,release版出错。解决方法可以参照如下帖子 , k! A6 a1 n. u- o5 Z
http://forum.scummvm.org/viewtopic.php?p=38579&sid=5fd65fe4d50d17ec99f80e7378e23c06 , g  r$ x& c) c; X
7 e6 @9 Y( n7 X* b; `3 [
最后放上编译好的头文件和静态库文件。
" F1 u& q7 r* Q) g0 l4 }' d! u" |6 ^/ @! _, _
--------------------------------------------------
5 [( ]8 K5 d4 W2009.10.31  更新 , T2 U4 Q) u" S' b5 J! `+ {: O
放上预编译好的Flac模块,现在所有的音效播放模块都齐了。
作者: shane007    时间: 2009-10-31 22:22
2009.10.31  更新




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2