Troubleshooting Building EE for Windows with Visual Studio
Hello! I am trying to figure out how to compile Empty Epsilon so I can test and contribute some updates for the continued localization/translation efforts, as well as some customizations for a game room project.
Issue
I get through the CMake generation and the Visual Studio build, but when I open [build directory]/Release/EmptyEpsilon.exe I get the following error and the program will not run:
- “The code execution cannot proceed because sfml-system-2.dll was not found. Reinstalling the program may fix this problem.”
- Same as above but for sfml-audio-2.dll
- Same as above but for sfml-network-2.dll
- Same as above but for sfml-window-2.dll
My Process
- I am following the instructions found on the EmptyEpsilon wiki here: https://github.com/daid/EmptyEpsilon/wiki/Build%5CWindows-with-MSVC
- Software Versions:
- Microsoft Visual Studio Community 2017 (Version 15.8.9)
- Microsoft Visual C++ 2017
- CMake (GUI) 3.21.1
- SFML version 2.5.1 for “Visual C++ 15 (2017) - 32-bit”
- EmptyEpsilon and SeriousProton EE-2021.06.23
- I had the following settings in the CMake GUI
- I configured in CMake with the following settings:
- Configuring spits out three warnings:
1) CMake Warning (dev) at C:/Users/User/Development/BeyondPlay/Pelihuone/Win32_EmptyEpsilon_EE-2021.06.23/GitHub/SeriousProton-EE-2021.06.23/CMakeLists.txt:45 (find_package):
Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables.
Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
2) CMake variable SFML_ROOT is set to:
C:/Users/User/Development/BeyondPlay/Pelihuone/Win32_EmptyEpsilon_EE-2021.06.23/GitHub/SFML-2.5.1-windows-vc15-32-bit/SFML-2.5.1
For compatibility, CMake is ignoring the variable.
This warning is for project developers. Use -Wno-dev to suppress it.
3) CMake Deprecation Warning at C:/Users/User/Development/BeyondPlay/Pelihuone/Win32_EmptyEpsilon_EE-2021.06.23/GitHub/SeriousProton-EE-2021.06.23/src/json11/CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
- The warnings don’t get in the way of generating, so I clicked “Generate” next and then “Open Project”.
- This opened a Visual Studio window with the Solution “EmptyEpsilon” loaded
- I first tried to select Build -> Build Solution and it built some things, but I could not find an EmptyEpsilon.exe anywhere in the build directory. I realized that I had things set to “Debug” and not “Release”, so I updated that. Build -> Configuration Manager
- I then ran “Build Solution” in Visual Studio again. It builds successfully, but skips 3 things:
8>------ Skipped Build: Project: update_locale, Configuration: Release Win32 ------
8>Project not selected to build for this solution configuration
12>------ Skipped Build: Project: INSTALL, Configuration: Release Win32 ------
12>Project not selected to build for this solution configuration
13>------ Skipped Build: Project: PACKAGE, Configuration: Release Win32 ------
13>Project not selected to build for this solution configuration
- I can now find [build directory]/Release/EmptyEpsilon.exe and get the above errors.
tl;dr
- The 4 SFML .dll files can be found in the SFML_ROOT directory .../SFML-2.5.1/bin
- CMake “Found SFML 2.5.1 in .../SFML-2.5.1/include”
- There are no errors from the Visual Studio build
- I’m not sure where to look for the 4 SFML .dll files in the build directory...
Halp! Does anyone have any suggestions of what to look for or try next?
Comments
Hi, from what I can tell, you are missing the third prerequsity:
SFML
msvc binaries: Either the 32bit or 64bit variant (choose appropriately)from the "Build with MSVC" wiki page.I personaly build with WSL and usually I do
ninja package
, then extract all DLLs from that zip to build folder and then run it from WSL terminal and use MSVC only as IDE. I usually get the same error when I build from scratch and forgot to copy those DLLs back to tbe build folder.