Step-by-step: How to build EmulationStation on Windows
-
Maybe it's because of this?:
Visual Studio Community 2015:
Use the web setup at https://www.visualstudio.com/vs/community/ selecting the following options:Custom install
Select Visual C++->Common Tools (nothing else)
Select Common Tools->Git & GitHub
Everything else off -
That's VS 2017
-
@duiz I know it, that's because I use bold in 2015...
All it's working fine for me in Vs 2015.
-
I was able to open the sln with 2017, have it update the files and continue to build with no problem. I did build with 2015 before trying 2017.
-
Is there a way to compile this onto a USB? Or is there no difference?
-
@itsnitro there's no difference, just copy all the required files into the same dir on de usb.
-
I tried to install and all steps run perfect except the last step to build ES in VS 2015 these are the errors are shown. How can I fix:
Severity Code Description Project File Line Suppression State Error (active) identifier "open" is undefined es-core c:\src\EmulationStation\es-core\src\platform.cpp 87 Error (active) identifier "close" is undefined es-core c:\src\EmulationStation\es-core\src\platform.cpp 89 Error C3861 'open': identifier not found es-core C:\src\EmulationStation\es-core\src\platform.cpp 87 Error C3861 'close': identifier not found es-core C:\src\EmulationStation\es-core\src\platform.cpp 89 Error C2440 'initializing': cannot convert from 'const boost::filesystem::path::value_type *' to 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' es-core C:\src\EmulationStation\es-core\src\Util.cpp 105 Error C2440 'initializing': cannot convert from 'const boost::filesystem::path::value_type *' to 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' es-core C:\src\EmulationStation\es-core\src\Util.cpp 106
-
@ray3d please put the output in a code block (three backticks + newline, see compose?) if you want people to be able to parse this.
-
@zigurana Thank you ziguana for answer. I see what was the pro the problem was I made the build for both versions at the same time in same directory. Then what I did was only use the commands at post and on VS to only debug version and the build was made perfectly.
Now sorry for my ignorance but after I made the build of EmulationStation how do you run? I see in the debug directory these files:"nanosvgd.lib" and "pugixmld.lib" but not an exe sorry to ask but how do you run EmulationStation?
-
@ray3d
Are you sure the linking did succeed successfully after compilation? It would be good if you could post the complete build output logging (in a codeblock)
I have the following library files included in my Debug folder:- boost_date_time-vc140-mt-gd-1_61.dll
- boost_filesystem-vc140-mt-gd-1_61.dll
- boost_locale-vc140-mt-gd-1_61.dll
- boost_system-vc140-mt-gd-1_61.dll
- emulationstation.exe
- emulationstation.ilk
- emulationstation.pdb
- es-cored.lib
- FreeImage.dll
- libcurl.dll
- libvlc.dll
- libvlccore.dll
- nanosvgd.lib
- pugixmld.lib
-
You are right there is something wrong. Actually I made a re build and I have this errors now:
**Severity Code Description Project File Line Suppression State
Error C3861 'open': identifier not found es-core C:\src\EmulationStation\es-core\src\platform.cpp 87
Error C3861 'close': identifier not found es-core C:\src\EmulationStation\es-core\src\platform.cpp 89
Error C2440 'initializing': cannot convert from 'const boost::filesystem::path::value_type ' to 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' es-core C:\src\EmulationStation\es-core\src\Util.cpp 105
Error C2440 'initializing': cannot convert from 'const boost::filesystem::path::value_type ' to 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' es-core C:\src\EmulationStation\es-core\src\Util.cpp 106
Error C1083 Cannot open include file: 'SDL2/SDL.h': No such file or directory emulationstation C:\src\EmulationStation\es-app\src\views\ViewController.cpp 15What could be the problem?
-
You are missing some dependencies, did cmake find all it needed? You are still only showing part of your output. Please use https://pastebin.com/ to show us all the output of a rebuild.
-
Here are the logs of the cmake of EmulationStation via the developer command prompt VS 2015 :
And here are the logs of the VS 2015 building EmulationStation:
-
@ray3d wait, what branch are you trying to build?
mytouch()
method in platform.cpp looks like:void touch(const std::string& filename) { #ifdef WIN32 FILE* fp = fopen(filename.c_str(), "ab+"); if (fp != NULL) fclose(fp); #else int fd = open(filename.c_str(), O_CREAT|O_WRONLY, 0644); if (fd >= 0) close(fd); #endif }
Looks like you are trying to build one of the older branches, that did not have the fixes to build on VS2015 yet.
-
I use this like the post say:
git clone https://github.com/fieldofcows/EmulationStation.git EmulationStation
Nothing else and my touch() in platform.cpp I have:
- void touch(const std::string& filename)
{
int fd = open(filename.c_str(), O_CREAT|O_WRONLY, 0644);
if (fd >= 0)
close(fd);
}
What I need to download then and from where?
- void touch(const std::string& filename)
-
@ray3d I see, you are cloning fieldofcows branch then.
Try this:
git clone https://github.com/RetroPie/EmulationStation.git EmulationStation
That will give you the current repository from the RetroPie branch, which you can consider the main trunk. -
@zigurana said in Step-by-step: How to build EmulationStation on Windows:
git clone https://github.com/RetroPie/EmulationStation.git EmulationStation
I arrived and tested and on the cmake I have this result now. In this case not finish the cmake:
-
@ray3d pugixml was converted to a submodule since this guide was written.
You will need to run
git submodule update --init
to pull down the the pugixml code.
Just curious, are you intending to work on the code or are you just looking to get an updated build for Windows?
-
jdrassa thank you for the information I want to use for my personal use and totally your command fix the issue of that library. However when I build in VS 2015 I have this log:
Less errors but it says there it can't generate the package or install. Now I went to configuration manager in VS 2015 in the solution and I checked the deploy on both because both were unchecked. But after check I have this log with worst quantity of errors:
What could be now?
-
@ray3d The line below is your current error. Either freetype didn't build properly or the path is configured wrong.
5>LINK : fatal error LNK1104: cannot open file 'c:\src\lib\freetype-2.7\objs\vc2010\Win32\freetype27.lib'
Do you intend to modify the code at all? If not, you can download a windows build here. These builds are automatically generated whenever the RetroPie repository is updated.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.