peter1591/hearthstone-ai

Compilation with VS 2017 community (Windows)?

CoderCoderCoder opened this issue · 9 comments

Hello,
first of all huge thanks for your great work, which you shared publicly. Being a big fan of HS and AI, I would like to run more experiments on the basis of your sources. But currently I am facing some problems - the code just doesn't get compiled (first there were some #include-problems, but now I am facing an issue that tiny-dnn just doesn't want to get compiled with C++ 17 as it's aimed on compilation with C++ 14, lots of errors in .hpp files. Any hints on how this could be solved? Many thanks again!!

What's your compiler version? I tried this on latest Visual Studio and g++ several months ago, with C++17 enabled.

I am just using the latest Visual Studio 2017 with C++17 enabled and the latest Windows devkit. No g++ at all , do I need it for tiny_dnn? So far I just cloned tiny_dnn repository and added all required paths for includes.

I met the same problem. Which release of g++ did you use @peter1591 ? MinGW or Cygwin? And which version number?

I had some issues that I luckily could work out.
Set compiler to C++ 17
Add '_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;' to the Preprocessor Definitions (Project Properties -> C/C++ -> Preprocessor).
Pull the tiny-dnn repository and copy tiny_dnn to third_party. Do the same with cereal and add it to the VC++ Directories -> Include Directories for GameEngineCPPWrapper
Add /bigobj to C/C++ -> Comand line -> Additional options (but I think you can skip this, I think I added it because of some error I could resolve otherwise)

Add ui\include to Includes for GameEngineCppCLI
Apply fix mentioned here

I think that's everything I needed to do to get it to compile. However, note that no neural network is included in the repo, so you will have to compile and train that as described in the readme.

/bigobj may be required depending on what version of the MSVC compiler you are using, but as of an update a few weeks ago it is no longer necessary

it comes about due to tiny-dinn generating some obscenely large files during linking, is all

@FrederikHusche hi there I follow your instrument and it really help me a lot. But still a problem bother me.
I get the error now,

error C2338 tuple index out of bounds GameEngineCppWrapper c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\utility 542

I already add the /bigobj into the commandline but seems not work. Do you have any idea about this?

@woshichuanqilz same situation, did you managed to solve it?

@woshichuanqilz @lovcavil same situation,any idea?

I may be late for you, but for the missing modules, I think you can simply update git submodules
Like so : git submodule update --init --recursive