安装
通用
在编译KlayGE之前,必须先安装Python 2.7+和CMake 3.4+。然后就可以执行build_external.py来编译和安装第三方库和工具。KlayGE在这些编译器上通过了测试。
从KlayGE 3.12.0开始,工程文件里都设置好了include和lib路径,解压后打开Build目录下的相应工程文件就可以直接编译KlayGE本身。或者执行build_all.py编译KlayGE、例子程序和工具集。
从KlayGE 4.1.0开始,工程文件改用cmake,并且包含有几个python的一站式编译脚本。build_glloader.py用来编译glloader,build_kfont.py用来编译kfont,build_KlayGE.py用来编译KlayGE、例子程序、工具集和教程。build_all.py则可以编译上述所有的东西。这几个.py都有两个可选的命令行参数,第一个表示编译器名,第二个表示配置名。比如:"build_all.py vc10 x64"表示用vc10的x64配置来编译。目前支持的编译器名有vc8、vc9、vc10、vc11、vc12、mingw和gcc,支持的配置名有x86、x64、x86_app和arm_app。如果不带参数,那么就会选用存在cfg_build.py中的默认参数。
从KlayGE 4.4.0开始,第三方库也都采用cmake作工程文件。只需要执行build_external.py就可以完成编译,不需要用到第三方库本身提供的工程文件。
从KlayGE 4.5.0开始,Android和WinRT版本也采用同样的cmake作工程文件。需要先编译出Windows版的工具集,才能正常编译Android和WinRT版本。具体参见构建Android版本的方法。
编译中如果提示v110_xp工具集找不到,请安装Visual Studio 2012 Update(目前的版本是Update 4)。
在Win8之前的系统上使用VS2012的用户请注意
如果安装了DX SDK,VS2012的include/lib目录可能会包含DX SDK的include/lib,这会和VS2012自带的Windows SDK冲突。表现是找不到D3D_FEATURE_LEVEL_11_1等。解决方法是把include/lib目录设置里的DX SDK相关目录去掉。
MinGW用户请注意
由于新版本Windows SDK,DirectX SDK和MinGW存在一些不兼容,在默认情况下编译DSound插件的时候,编译器会报告找不到sal.h。这时候需要把VC的sal.h拷到MinGW/include下。然后打开MinGW/lib/gcc/mingw32/4.4.1/include/stddef.h,找到"#define NULL __null",改成"#define NULL 0"。因为sal.h会把__null定义成别的东西。
Linux平台
这里以Ubuntu为例。需要安装wine和相关依赖库。
sudo apt-get install wine wine-dev libc6-dev-i386 g++-4.8-multilib libx11-dev libgl1-mesa-dev libglu1-mesa-dev libopenal-dev build-essential
有了wine之后,还需要强制wine进入32位模式,因为64位的wine基本没法工作。
export WINEARCH=win32 winetricks
OSX平台
如果没有安装brew.sh,就先运行
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
OSX也需要先安装wine。
brew cask install xquartz brew install wine --without-win64