lundi 26 janvier 2015

nmake of (OSRM v4.5.0) fails due to constexpr (C++11) with msvc12

I have an issue with OSRM back-end v4.5.0 build with nmake (see hereafter the error output). Knowing that all previous steps were successful. Once i lunch nmake it fails at 2%. I'm 99% sure that it is a compiler issue, since the "constexpr" in "Coordinate.h" is not supported in msvc12. The C++11 is not fully integrated in the msvc12. To overcome the issue, Visual Studio invite us to use the CTP "http://ift.tt/UVRROm".


The question is, how to force cmake/nmake to use the CTP compiler !?


Thanks for your reply



Coordinate.h



...
namespace {
constexpr float COORDINATE_PRECISION = 1000000.f;
}
...


Error output



D:\osrm450be\build>nmake


Microsoft (R) Program Maintenance Utility Version 12.00.21005.1 Copyright (C) Microsoft Corporation. All rights reserved.


Scanning dependencies of target COORDINATE [ 2%] Building CXX object CMakeFiles/http://ift.tt/1zP6sxR Coordinate.cpp D:\osrm450be\Include\osrm/Coordinate.h(37) : error C2144: syntax error : 'float' should be preceded by ';' D:\osrm450be\Include\osrm/Coordinate.h(37) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int D:\osrm450be\data_structures\Coordinate.cpp(290) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data NMAKE : fatal error U1077: 'C:\PROGRA~2\MICROS~2.0\VC\bin\cl.exe' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe"' : return code '0x2' Stop.



Aucun commentaire:

Enregistrer un commentaire