Description: Doesn't compile with GCC 7.1.1
Current behaviour:
[ 99%] Built target scripts_northrend
[100%] Linking CXX executable worldserver
../game/libgame.so: undefined reference to `Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck>::Visit(GridRefManager<Player>&)'
make[1]: *** [CMakeFiles/Makefile2:2339: src/server/worldserver/CMakeFiles/worldserver.dir/all] Error 1
make: *** [Makefile:130: all] Error 1
Branch(es): 3.3.5
TC rev. hash/commit: TrinityCore revision : 1660bb7d27d6 2017-06-07 02:33:47 +0200 (3.3.5 branch)
TDB version: TDB 335.63 with updates.
Operating system: Arch Linux
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp
index ff5dcec..2e0f7b8 100644
--- a/src/server/game/Battlefield/Battlefield.cpp
+++ b/src/server/game/Battlefield/Battlefield.cpp
@@ -21,6 +21,7 @@
#include "CellImpl.h"
#include "CreatureTextMgr.h"
#include "GridNotifiers.h"
+#include "GridNotifiersImpl.h"
#include "Group.h"
#include "GroupMgr.h"
#include "Map.h"
I'm not sure if your problem belongs in the TC issue tracker, but have you tried using
$ export CXX=clang++
$ export CC=clang
instead of using gcc ?
Also, if you are interested in looking at warnings, you can look at travis-ci output for example config for debug build with warnings:
https://travis-ci.org/TrinityCore/TrinityCore/builds/240186140
(build run on the same commit as yours)
I did not use Clang. Trinity::AnyPlayerInObjectRangeCheck is contained in these files:
http://i.imgur.com/KgeOjMD.png
All files except Battlefield.cpp contain #include "GridNotifiersImpl.h".
And now include logic.
I don't know enough about how the core source works with Linux, so I have to wait for feedback from one of the main TC devs to comment if this is correct, wrong, hack or a needed change.
Are you seriously? This is easily verified by installing the virtual machine with the GNU/Linux distribution and the set of packages needed.
I'm not sure where you got gcc 7, I had to add a repo to get gcc 6. Just install an older version (gcc<=6) and it should work. I've compiled with i think 4.7 and 6 no problems
With GCC 6.3 there is no problem. Well, for some, the Linux 2.3 kernel can also be new in 2017, although there is already 4.11.3. That was sarcasm...
I'm not sure where you got gcc 7
Arch Linux is a rolling release distro and it uses bleeding edge packets
Does the patch fix the compile? if so make a PR for it, please
Sorry, I confused the GCC version in PR.
Can confirm this include is needed, master branch has it
Most helpful comment
Can confirm this include is needed, master branch has it