跳到主要内容

构建说明

大多数服务器管理员使用官方发行版即可。只有在你参与 ReHLDS 开发、需要验证尚未发布的改动,或者需要定制构建时,才需要从源代码编译。

检查前置条件​

构建 ReHLDS 需要若干软件:

Windows

  • Visual Studio 2015(C++14 标准)或更新版本

Linux

  • CMake 3.10 或更新版本
  • 以下编译器之一:GCC 4.9.2+、ICC 15.0.1 20141023+ 或 Clang(LLVM)6.0+

克隆仓库​

git clone https://github.com/rehlds/ReHLDS.git
cd ReHLDS

在 Windows 上构建​

在 Visual Studio 中打开 msvc/ReHLDS.sln,从解决方案配置中选择 Release Swds(调试构建则选 Debug Swds),然后开始构建。

备注

CMake 不支持在 Windows 上构建——CMakeLists.txt 会故意报错,并提示你改用 msvc/ReHLDS.sln。CMake 仅用于 Linux 构建。

在 Linux 上构建​

使用随附的 build.sh 脚本,可按需指定编译器和并行任务数:

./build.sh --compiler=[gcc|icc|clang] --jobs=[N]

例如:

./build.sh --compiler=gcc --jobs=4 # GCC
./build.sh --compiler=intel # ICC
./build.sh --compiler=clang # Clang / LLVM

也可以通过 build.sh 以 -D<选项>=[ON|OFF] 的形式传递 CMake 定义:

定义作用
DEBUG启用调试模式。
USE_STATIC_LIBSTDC静态链接 libstdc++。

检查构建环境(Debian / Ubuntu)​

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y gcc-multilib g++-multilib
sudo apt-get install -y build-essential
sudo apt-get install -y libc6-dev libc6-dev-i386
sudo apt-get install -y cmake

然后选择一个编译器:

sudo apt-get install -y gcc g++
# 或者
sudo apt-get install -y clang

运行单元测试​

项目的 CI 会在常规构建之前,使用专门的 CMake 构建类型编译并运行单元测试套件:

cmake -DCMAKE_BUILD_TYPE=Unittests -B build
cmake --build build -j8
LD_LIBRARY_PATH="rehlds/lib/linux32:$LD_LIBRARY_PATH" ./build/rehlds/engine_i486

退出码为 0 或 3 表示测试通过;其他任何退出码都表示测试失败。

构建产物​

Linux 上构建成功后会在 build/ 目录下生成 engine_i486.so(以及专用服务器、HLTV 和文件系统相关的二进制文件),其目录结构与安装时替换的一致。在 Windows 上,生成的 DLL 和 EXE 位于对应的 msvc/<配置名> 目录中。