---
title: "服务器又粗了问题,这次索性装个传说中的TrintyCore试试看~"
url: "https://yjyj.net/learn/4602.html"
author: "小 虾 (生猛大蝦编辑部)"
published_at: "2014-04-19T18:05:31+08:00"
updated_at: "2014-10-16T16:58:36+08:00"
categories: "招数学习"
tags: "Linux运维, TrintyCore, 模拟器, 编译, 魔兽世界"
summary: "这篇实战记录讲的是在 Linux 服务器上折腾 TrinityCore 的完整过程：先补齐编译依赖、ACE 库与环境，再用 CMake 拉起源码构建，顺带避开 MySQL 和 OpenSSL 与现有环境冲突。适合想自己搭建游戏服务端、排查编译依赖的人参考。"
source: "生猛大蝦 (https://yjyj.net)"
---

# 服务器又粗了问题,这次索性装个传说中的TrintyCore试试看~

> 来源：[生猛大蝦 (yjyj.net)](https://yjyj.net/learn/4602.html) · 作者：小 虾 · 发布时间：2014-04-19

## 30 秒核心看点 (TL;DR)

- 先把 build-essential、Boost、ACE 等依赖补齐，再进入源码目录用 CMake 配置编译。
- 作者强调已预装环境时别乱动 MySQL 和 OpenSSL，避免把现有 AMH 配置搞乱。
- 核心价值不是“装上就完事”，而是把 TrinityCore 的编译链路和依赖坑一次摸清。

记录一下过程,如果T端不错,那倒是可以玩玩看.

**服务器要求:**

```
Platform: Linux, Windows ≥ 7 or Mac
Processor with SSE2 support
Boost ≥ 1.49 (≥ 1.54 if build with Clang)
MySQL ≥ 5.1.0 < 5.6 
CMake ≥ 2.8.12 (Windows)
CMake ≥ 2.8.9 (Linux) 
OpenSSL ≥ 1.0.0
GCC ≥ 4.7.2 (Linux)
MS Visual Studio (Express) ≥ 12 (2013) (Windows) 
World of Warcraft Client 3.3.5a or 4.3.4
```


 

**首先当然是环境:**

```
sudo apt-get install build-essential autoconf libtool gcc g++ make cmake git-core patch wget links zip unzip unrar
sudo apt-get install libssl-dev libreadline6-dev zlib1g-dev libbz2-dev
sudo apt-get install libncurses5-dev
```



```
apt-get install build-essential gcc g++ automake git-core autoconf make patch libtool libssl-dev grep binutils zlibc libc6 libbz2-dev cmake
apt-get install -qq libbz2-dev libncurses5-dev libreadline-dev libsdl1.2-dev libssl-dev zlib1g-dev libace-dev
```



```
sudo apt-get install build-essential autoconf libtool gcc g++ make cmake git-core
sudo apt-get install patch wget links zip unzip unrar libncurses5-dev
sudo apt-get install openssl libssl-dev 
sudo apt-get install libreadline6-dev zlib1g-dev libbz2-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-system-dev
sudo apt-get install libboost-program-options-dev
```


因为已经先预装了AMH的环境,所以关于Mysql跟openssl的部分就不搞起了,省得到时候又要重新给AMH配置.

**还要安装ACE:**
Installing ACE (Adaptive Communication Environment)
Ubuntu下的安装

```
sudo apt-get install libace-dev
```


下载并解压ACE-library

```
//wget http://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.3.tar.gz
//tar xvzf ACE-6.0.3.tar.gz
wget http://download.dre.vanderbilt.edu/previous_versions/ACE-6.2.0.tar.gz
tar zxvf ACE-6.2.0.tar.gz
cd ACE_wrappers/
mkdir build
cd build
```


配置, 编译并且安装 ACE

```
../configure --disable-ssl
make
sudo make install
```


**准备工作完毕,现在开始着手构建TrintyCore**

**0. 获取源码: **

```
cd ~/
git clone git://github.com/TrinityCore/TrinityCore.git
```


trinitycore文件将自动创建,所有的源文件将被存储在那里

**1. 编译源码:**

```
cd TrinityCore
mkdir build
cd build
```


为了避免文件错乱,我们建立一个build文件夹存放它们

**配置编译选项**

```
cmake ../ [配置参数,下文有详细介绍]
```


参数说明:
a. 完整libACE.so文件路径，如果安装了ACE则不需要

```
-DACE_LIBRARY=
```


b. libACE include文件路径,如果安装了ACE则不需要

```
-DACE_INCLUDE_DIR=
```


c. OpenSSL includes,如果已经安装则不需要

```
-DOPENSSL_LIBRARIES=
```


d. OpenSSL includes,同上

```
-DOPENSSL_INCLUDE_DIR=
```


-DSERVERS 建立WorldServer 和 authserver 

```
-DSCRIPTS Build core with scripts included
-DTOOLS Build map/vmap extraction/assembler tools -DTOOLS=1 (will include tools)
-DUSE_SCRIPTPCH Use precompiled headers when compiling scripts
-DUSE_COREPCH Use precompiled headers when compiling servers
-DWITH_WARNINGS Show all warnings during compile
-DWITH_COREDEBUG Include additional debug-code in core
-DPREFIX Set installation directory
-DCONF_DIR Set configuration directory
-DLIBSDIR Set library directory
-DCMAKE_C_FLAGS Set C_FLAGS for compile (advanced users only)
-DCMAKE_CXX_FLAGS Set CXX_FLAGS for compile (advanced users only)
```


**来个完整的例子作为参考**
0.

```
cmake ../ -DPREFIX=/home//server -DWITH_WARNINGS=1
```


1.

```
cmake ../ -DPREFIX=/home/wow/server -DCONF_DIR=/home/wow/server/conf -DLIBSDIR=/home/wow/server/lib  -DUSE_SFMT=1 -DTOOLS=1 -DSCRIPTS=1 -DSERVERS=1 -DWITH_WARNINGS=1
```


**2. 构建核心**

```
make
make install
```


如果有多个CPU内核，可以使用这些：

```
make -j 
make install
```


构建并且安装完核心,可爱的文件们就会在上面设置的文件夹下:

```
/home/wow/server/bin
```


设置文件:

```
/home/wow/server/etc
```


**更新版本方法: **

```
cd ~/TrinityCore/
git pull origin master
```


然后重复上面的编译安装步骤就ok了

**3. Installing libMPQ (MoPaQ) MPQ-reader library**
打开文件: ~/TrinityCore/dep/libmpq/
执行安装:

```
sh ./autogen.sh
./configure
make
sudo make install
```


**4.设置数据库**
首先去官网下载最新的TDB

```
http://www.trinitycore.org/f/files/file/5-tdb-full-updates/
```


接着在PMA中导入:

```
*\sql\create\create_mysql.sql
```


用来建立数据库,这一步后,会生成:auth,world,characters这三个数据库
然后再分别给auth,characters分别导入数据库结构:

```
*\sql\base\auth_database.sql

*\sql\base\characters_database.sql
```


最主要的world库也是一样,导入刚在官网下载的完整TDB:

```
*\TDB_full_335.53_2014_xx_xx\TDB_full_335.53_2014_xx_xx.sql
```


这样,数据库就建立ok啦.

接下来就是生成dbc,maps,vmpas,mmps这些文件了,哥的小破电脑,生成过程至少也要10+个小时,就不多表了.

完了再修改配置文件:

```
cp worldserver.conf.dist worldserver.conf
cp authserver.conf.dist authserver.conf
```


**worldserver.conf**
**authserver.conf**

到这儿基本上就ok了,找小伙伴们一起愉快的游戏吧!

## 延伸问答与排错指南 (FAQ)

### TrinityCore 编译前要准备哪些依赖？
文章里列出的重点是 Linux 编译工具链、Boost、MySQL、CMake、OpenSSL、GCC，以及 ACE。实际操作时先装 build-essential、cmake、git、libssl-dev、libboost-dev 等，再确认系统里已有的数据库和加密库版本是否满足要求。

### 为什么要单独安装 ACE 库？
因为 TrinityCore 编译时会用到 ACE 相关头文件和库文件。若系统里没有现成可用版本，就需要先安装 libace-dev，或者手动下载 ACE 源码编译安装，之后再在 CMake 配置阶段指定对应路径。

### 编译 TrinityCore 时最容易卡在哪一步？
最常见的是依赖版本不匹配和路径配置错误，比如 Boost、ACE、OpenSSL 找不到，或者 CMake 参数没填对。建议先确认环境完整，再在独立 build 目录里执行 cmake 配置，减少源码目录污染和编译混乱。

---
更多 Linux 运维、WordPress 性能优化、前端工程化、Shopify 独立站与极客折腾指南：[生猛大蝦全站文章归档 (https://yjyj.net/archive)](https://yjyj.net/archive)
