Before you get scared by this long guide, we assure you the procedure is quite simple.
Most of the following steps are to be performed only the first time you install Trinity and only the Trinity updating procedures will need to be run from time to time.
|3.3.5 (WotLK Client)
This will clone 3.3.5a branch,
this is the RECOMMENDED branch for starters and people wanting playable content.
|master (currently shadowlands client)
This will clone master branch,
note that this is NOT the recommended branch for starters,
this branch doesn't ship most of content after 3.3.5a.
Click Clone. Within a few minutes all of the TrinityCore source files will be pulled into the directory C:\Trinity.
Note: If you don't specify a branch, git will pull master by default!
Before you begin, create an empty directory called Build. In this example, we will use C:\Build.
Note: If CMake does not recognize your C/C++ compiler, choose Specific Native Compiler, and choose path to target vcvarsall.bat, e.g. C:\Program Files\Microsoft Visual Studio 14.0\VC\vcvarsall.bat
Note: The following images serve as an example and partly show outdated software versions:
Click Browse Source... -> Select
the source directory (C:\Trinity)
2. Click Browse Build... -> Select
the build directory (C:\Build)
3. Click Configure
4. Make sure that Use default native compilers
is checked (should be checked by default).
5. In the drop-down menu, choose the
version of the compiler you downloaded
in the Software Required section. Be sure to choose
Win64 version if you work on 64-bits compilation
6. Click Finish.
7. Make sure Tools is checked already.
This will compile the map extractors
needed later in the setup.
(in master (up to 6.2.4 tag) branch, this will also
8. Click Configure again. As long as you have error(s) typed in red in the log window, you will have to check
your parameters and click again on it.
9. Click Generate. This will install the
selected build files into your C:\Build folder.
Some errors fixes
- If MySQL is not found by CMake it is required to set MYSQL_INCLUDE_DIR = C:/XX/MySQL/MySQL Server 5.XX**/include** and MYSQL_LIBRARY= C:/XX/MySQL/MySQL Server 5.XX/lib_XX/libmysql.lib.
XX depends if you are compiling in 32 or 64 bits mode and the mysql version you have selected.
- If you get linker errors (e.g "error LNK2019: unresolved external symbol mysql_server_init"), make sure MYSQL_LIBRARY is set to the libmysql.lib that matches your compile mode (x64 vs 32 bits).
(If you do not see the MYSQL fields in CMake, tick the Advanced box).
- If you get an error that CMake could NOT find OpenSSL:
- Check the Advanced checkbox
- Find the two OPENSSL entries in the list and point to the correct directories:
OPENSSL_ROOT_DIR is the installation path (by default, C:/OpenSSL-Win32 or C:/OpenSSL-Win64)
OPENSSL_INCLUDE_DIR is the "include" folder in installation path (by default, C:/OpenSSL-Win32/include or C:/OpenSSL-Win64/include)
In Visual Studio, browse into your C:\Build folder and open TrinityCore.sln with Visual Studio Community.
On the menu at the top, click Build and select Configuration Manager.
Set Active Solution Configuration to RelWithDebInfo
In the list menus below "Help", set Active Solution Platform to x64 (if you set 32-bit compilation during the CMake configuration, select x86)
and click Close (settings get saved instantly). On some versions of Visual Studio, this will be read and set automatically based on the CMake settings.
Right-click ALL_BUILD in the Solution Explorer on the left sidebar and select Clean
(if your GUI does not show Solution Explorer, click the Build menu and select Clean Solution).
Right-click ALL_BUILD and select Build (or go to the Build menu and click Build Solution (Ctrl+Shift+B)).
========== Build: 22 succeeded, 0 failed, 0 up-to-date, 1 skipped ==========
This info may be outdated
Note: in MySQL 5.7 64bit there is a bug. Binary_log_types.h and Binary_log_funcs.h are missing.
you can download http://dev.mysql.com/downloads/file/?id=456917 and open it with winrar (or google something for opening .tar Archive)
then go to mysql-5.7.7-rc\libbinlogevents\include there you'll find both files. copy them to C:\Program Files\MySQL\MySQL Server 5.7\include (default location, change to your directory if you have a different mysql install location
You will find your freshly compiled binaries in the C:\Build\bin\RelWithDebInfo or C:\Build\bin\Debug folder. These are all used to run your server at the end of this instruction.
You will need the following files in order for the core to function properly:
There are three DLL files that need to be manually added to this folder, and you need to copy them over from the following installation/bin directories:
libmysql.dll → C:\Program Files\MySQL\MySQL Server 5.x\lib\
OpenSSL before 1.1.0 version installed:
ssleay32.dll → C:\OpenSSL-Win64\ or C:\OpenSSL-Win32\ (depends on if your core is 64-bit or 32-bit)
OpenSSL 1.1.0 and more recent installed, names have changed:
libcrypto-1_1.dll → C:\OpenSSL-Win32\bin
libcrypto-1_1-x64.dll → C:\OpenSSL-Win64\bin
About compilation log and report
pdb files only exist if you compile on Debug or RelWithDebInfo modes, it's not mandatory but it's recommended to compile core on at least RelWithDebInfo mode to get proper crashlogs. If you compile on Release mode the pdb files aren't needed.
To report crash logs it's MANDATORY to compile on Debug or RelWithDebInfo mode.
Please remember to rename the worldserver.conf.dist and authserver.conf.dist / bnetserver.conf.dist files to worldserver.conf and authserver.conf / bnetserver.conf respectively, unless you want to keep the configuration files of a previously compiled version of the core.
TrinityCore Developers are always at work fixing and adding new features to the core. You can always check them here, or by viewing them from within Git Extensions.
Open your TrinityCore repository in GitExtensions.
This will sync your local repo to the latest commits from the branch you have setup as default.
3. Now you will need to re-run CMake Configure & Generate to update your solution (.SLN) files.
4. Compile downloaded source.
5. Run worldserver, it will apply all new sql files (can see that in console).
Bugs and errors reporting
Before reporting bugs please update your core, since we commit a lot of things monthly. Even one week core is old and your bug can be fixed on next or latest updated revision.
Also keep in mind that this guide is meant to satisfy a maximum of people in compiling TrinityCore under Windows environment in a general and easy way. You may encounter variations
depending on many parameters.
If you still have any problem, check: