0
votes

I'm having difficulties trying to compile an opensource framework (EmulationStation) in VS2015 on Windows. I've never used any of the tools before, apart from Visual Studio - so please forgive me if these are some obvious mistakes.

The guide says i need to do like this:

Boost (you'll need to compile yourself or get the pre-compiled binaries)

Eigen3 (header-only library)

FreeImage

FreeType2 (you'll need to compile)

SDL2

cURL (you'll need to compile or get the pre-compiled DLL version)

(Remember to copy necessary .DLLs into the same folder as the executable: probably FreeImage.dll, freetype6.dll, SDL2.dll, libcurl.dll, and zlib1.dll. Exact list depends on if you built your libraries in "static" mode or not.)

CMake (this is used for generating the Visual Studio project)

(If you don't know how to use CMake, here are some hints: run cmake-gui and point it at your EmulationStation folder. Point the "build" directory somewhere - I use EmulationStation/build. Click configure, choose "Visual Studio [year] Project", fill in red fields as they appear and keep clicking Configure (you may need to check "Advanced"), then click Generate.)

This is how my CMake looks like (it says generating done)enter image description here

I get alot of compilation errors in visual studio when trying to build though:

1) Cannot open include file: 'curl/curl.h': No such file or directory (compiling source file C:\Users\retropie\Documents\GitHub\EmulationStation\es-app\src\guis\GuiMetaDataEd.cpp) emulationstation C:\Users\retropie\Documents\GitHub\EmulationStation\es-core\src\HttpReq.h

Where do I get this header file from?

2) 'round': redefinition; different exception specifications (compiling source file C:\Users\retropie\Documents\GitHub\EmulationStation\es-app\src\guis\GuiMenu.cpp) emulationstation C:\Users\retropie\Documents\GitHub\EmulationStation\es-core\src\Util.h 18

I have a lot of these errors with round. Am I missing a reference to a library?

Another screendump of some of the errors from VS2015: enter image description here

Hope someone can point me in the right direction.

1
Where do I get this header file from? You set curl tag but didn't try to undestand what it means (e.g with google)? Obviously, header curl/curl.h comes with curl package. But CMake has set variable CURL_INCLUDE_DIR, so if there is no given header under this dir (exactly, at C:\Users\retropie\Documents\ESDependencies\FreeImage\curl\curl.h), than something wrong with your curl installation. If given file exists, then project EmulationStation itself is broken. - Tsyvarev
I do know what cURL is. I downloaded a precompiled library somewhere, and it did not include a header file - so i guess i should start by compiling cURL myself in order to have the .dll and .h files ? - Thomas T
If you have precompiled library, it should already contains library files. But it may do not include header files, so you should find them in another resource. But how value of variable CURL_INCLUDE_DIR comes into the CMake cache? Are you filled it manually? - Tsyvarev

1 Answers

0
votes

I am currently in de same boat as you, trying to get ES building under MSVS2015. I am also very green, so hopefully others chime in as well. Regarding the 'round' errors, apparently the MS compiler has no knowledge of these. For this issue, and some others, the newer ES fork by Herdinger has fixed this.

As this is currently the most active ES branch out there, and has the explicit goal of consolidating at least some of the backlog of PRs from the original Aloshi git, I would suggest you use this one.

In issue #4, there is some more information on building in recent VS versions. There is also a link for the precompiled cURL libs, including the header.

Having gone that far, I am sad to say that I still do not have a succesfull build as of yet. Compiling is no problem, however linking gives me a LNK2005 error.

Hope this helps a bit. Let me know how you fare.