EGE 源码使用 CMake 构建编译系统,以支持各种编译器和 IDE。
请在 cmake.org 下载最新版 CMake,并在安装时选择将 CMake
目录添加到 PATH
环境变量中。本指南默认在 CMD 或者 PowerShell 命令行下进行编译,
但仍使用 $
作为提示符。如果您对 CMake 有足够的把握,亦可使用 CMake GUI
进行配置和生成。
- 创建 build 文件夹并设为当前目录
$ mkdir build
$ cd build
- 执行
cmake
命令生成编译配置文件
$ cmake .. [编译配置]
[编译配置]
指定特定的编译平台,将在后文详述。
- 进行编译
$ cmake --build .
编译过程将在 build
目录下生成相应的静态库文件。
如果想在完成编译后使用其它编译器再次编译,请先清空 build
目录,CMD 命令为
$ for /D %d in (*) do @rmdir %d /S /Q
$ del * /S /Q
清空目录后再从步骤 2 继续执行。
不同编译平台的差别主要是配置编译步骤的第二步。
$ cmake .. -G "MinGW Makefiles"
CMake 会自动检测安装的 MinGW 编译器并生成编译配置。
如果想指定编译套件(如 Dev-C++ 自带的 TDM-GCC 4.9.2),可在执行 cmake
前设置 PATH
环境变量指向特定的 MinGW 所在位置,CMake 在配置时会采用最先
在 PATH 中检测到的编译器进行编译。例如,Dev-C++ 安装目录为 C:\Dev-Cpp
,则
在 CMD 中执行以下命令:
$ set PATH="C:\Dev-Cpp\MinGW64\bin";%PATH%
在 PowerShell 中则是:
$ $env:PATH="C:\Dev-Cpp\MinGW64\bin;$env:PATH"
注意,CodeBloks 附带的 MinGW 只能在 MSYS Makefiles 配置 下编译。在此建议您下载不附带 MinGW 的 CodeBlocks 并单独安装最新版 TDM-GCC64, CodeBlocks 会自动识别已安装的 TDM-GCC。
以上步骤对 32 位与 64 位 MinGW 均适用,分别会产生对应 64 位和 32 位版本的 EGE 静态库。
64 位 MinGW 支持编译 32 位目标,要想达到这一效果,在以上步骤中设置 PATH
环境变量
之后,执行 cmake
之前需要设置 CC
和 CXX
环境变量。在 CMD 中命令为:
$ set CC="gcc -m32"
$ set CXX="g++ -m32"
在 PowerShell 中为:
$ $env:CC="gcc -m32"
$ $env:CXX="g++ -m32"
之后再执行 cmake .. -G "MinGW Makefiles"
命令。
如果您在使用 MSYS2 或 git-bash,您可以用 MSYS Makefiles
生成适合此类环境的编译系统。
所需要的命令和上面描述的没有区别,但需要把 CMD 或 PowerShell 命令换成 Bash 命令, 比如设置环境变量:
$ export PATH=/C/Dev-Cpp/MinGW64/bin:$PATH
相应的 CMake 生成指令是
$ cmake .. -G "MSYS Makefiles"
注意,您需要从 pacman
包管理器安装或者
相关网站
上下载 MSYS make 程序并将其复制到可执行路径如 /usr/bin
中。
扩展阅读:Windows 上的编译系统
CMake 自 3.6 后停止了对生成 VC6 项目的支持,但仍可生成 NMake 编译系统以支持 VC6 编译。
首先,检查你的 VC6 安装目录(以下用 VC6PATH
指称,如果是免安装版则对应解压出的
vc6
文件夹的路径,这个路径应包含 VC98
和 Common
文件夹),在
VC6PATH\VC98\Bin
文件夹中的 VCVARS32.BAT
文件中开始部分的内容应和 VC6PATH
相一致,例如安装到 D:\VC6
的 VC6,在 D:\VC6\VC98\Bin\VCVARS32.BAT
中的开头部分
应当是:
rem Root of Visual Developer Studio installed files.
rem
set MSDevDir=D:\VC6\Common\msdev98
rem
rem Root of Visual C++ installed files.
rem
set MSVCDir=D:\VC6\VC98
不一致的情况常出现于免安装版 VC6,此时需修改 VCVARS32.BAT
内容使其与 VC6 实际所在
目录一致。
确认 VCVARS32.BAT
内容正确后,在 EGE 源码的 src\build
目录下执行此批处理文件,
在上面的例子中就是执行:
$ "D:\VC6\VC98\Bin\VCVARS32.BAT"
执行成功后即建立 VC6 命令行环境,就可以继续执行编译步骤二了:
$ cmake .. -G "NMake Makefiles"
使用 cmake -G
命令查看支持的 Visual Studio 版本,选择自己安装的 VS 版本,
如“Visual Studio 14 2015”作为 -G
的参数传递给 CMake。可用一个可选参数指定
目标平台,默认为 32 位 x86 平台,可选的参数有 Win64
,ARM
。
因此编译 32 位 EGE 库需要执行:
$ cmake .. -G "Visual Studio 14 2015"
编译 64 位 EGE 库:
$ cmake .. -G "Visual Studio 14 2015 Win64"