-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Windows Compilation
Note: as of April 2016 Windows builds may or may not work. See https://lists.openstreetmap.org/pipermail/osrm-talk/2016-May/001214.html
Ready to use Release
binaries are available here
Currently Debug
binaries are out of date.
If you plan to run the binaries on a machine without Visual Studio 2015 installed you need the latest Microsoft Visual C++ 2015 Redistributable
(currently Update 3
):
https://www.microsoft.com/en-us/download/details.aspx?id=48145
To start compiling following software needs to be installed:
- Latest
Visual Studio 2015 Update 3
(Community or better, MSVC full version 190024210) - earlier versions are not supported
- Git for Windows:
- CMake
- https://cmake.org/download/
- Minimum required version is 3.7.0 with Boost 1.62 version supported in FindBoost.cmake
- 7-Zip
- nodejs 4.x LTS (needed to run tests)
Use a stock command prompt, don't use a VS2015 command prompt.
- Open a stock command prompt
- Change to a folder of your choice
git clone https://github.com/Project-OSRM/osrm-backend.git
cd osrm-backend
build-local.bat
After a few minutes (depending on how powerful your machine is) you should end up with an archive named osrm_Release.zip
that contains everything needed to run OSRM.
As mentioned above:
If you plan to run the binaries on a machine without Visual Studio 2015 installed you need the latest Microsoft Visual C++ 2015 Redistributable
(currently Update 3
):
https://www.microsoft.com/en-us/download/details.aspx?id=52982
I think this page is obsolete. I add few commet since I tried to compile OSMR recently using Codeblocks 20.03 on Windows 10. What I found was that
Several extra libraries ave to be installed like BZip2, lua. I was using MSYS2 so I did, pacman -S mingw-w64-x86_64-bzip2 pacman -S mingw-w64-x86_64-lua pacman -S mingw-w64-x86_64-zlib
instal Intell tbb https://github.com/oneapi-src/oneTBB/releases Extract it to a folder (e.g., C:\tbb).
Ensure to add TBB Path to CMake Command and that the bin folder of MinGW or MSYS2 (e.g., C:\msys64\mingw64\bin) is added to your system PATH environment variable.
Then in osrm-backend\build run
cmake -G "CodeBlocks - MinGW Makefiles" .. -DCMAKE_BUILD_TYPE=Release -DTBB_INCLUDE_DIR="C:/tbb/include" -DTBB_LIBRARY="C:/tbb/lib/intel64/gcc4.8/libtbb.so"
cmake -G "CodeBlocks - MinGW Makefiles" .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-fno-lto -mconsole" -DCMAKE_EXE_LINKER_FLAGS="-Wl,-e,mainCRTStartup"
It may be enough to compile.
However for some compilation problems I add to do
- remove "-Werror # Treat all warnings like error" in a CMakeLists.txt file
- add in shared_memory.hcp in line 208: (void)lock_file; // This explicitly marks lock_file as used to avoid warning of unused variable
- to avoid an Link Time Optimization (LTO) error run cmake -G "CodeBlocks - MinGW Makefiles" .. -DCMAKE_BUILD_TYPE=Release -DIPO=OFF
- put OFF in option(ENABLE_LTO "Use Link Time Optimisation" OFF) and I add set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF) in Cmake
I finally gave up because of Windows console incompatibility (Winmain not found) without knowing the reason even after having, In codebleocks Project properties, Built target, type put Console application