由于msvc12的constexpr(C++11),nmake of(OSRM v4.5.0)失败

由于msvc12的constexpr(C++11),nmake of(OSRM v4.5.0)失败,c++11,openstreetmap,nmake,msvc12,osrm,C++11,Openstreetmap,Nmake,Msvc12,Osrm,我对OSRM后端v4.5.0版本有一个问题,请参阅下文中的错误输出。msvc12不支持坐标.h中的constexpr。 问题是,如何强制cmake/nmake使用CTP编译器 谢谢你的回复 坐标h ... namespace { constexpr float COORDINATE_PRECISION = 1000000.f; } ... 错误输出 D:\osrm450be\build>nmake Microsoft R程序维护实用程序版本12.00.21005.1 微软公司版权所有。

我对OSRM后端v4.5.0版本有一个问题,请参阅下文中的错误输出。msvc12不支持坐标.h中的constexpr。 问题是,如何强制cmake/nmake使用CTP编译器

谢谢你的回复

坐标h

... 
namespace { 
constexpr float COORDINATE_PRECISION = 1000000.f; 
} 
...
错误输出

D:\osrm450be\build>nmake

Microsoft R程序维护实用程序版本12.00.21005.1 微软公司版权所有。版权所有

扫描目标坐标[2%]的依赖项构建CXX对象 CMakeFiles/COORDINATE.dir/data_structures/COORDINATE.cpp.obj Coordinate.cpp D:\osrm450be\Include\osrm/Coordinate.h37:错误 C2144:语法错误:“float”前面应加“;” D:\osrm450be\Include\osrm/Coordinate.h37:错误C4430:缺少类型 说明符-假定为int。注意:C++不支持默认int D:\osrm450be\data\u structures\Coordinate.cpp290:警告C4244:“=” :从“双精度”转换为“浮点”,可能会丢失数据NMAKE: 致命错误U1077:'C:\PROGRA~2\MICROS~2.0\VC\bin\cl.exe':返回 代码“0x2”停止。NMAKE:致命错误U1077:'C:\程序文件 x86\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe':返回代码“0x2”停止。NMAKE:致命错误U1077:'C:\Program Files x86\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe':返回代码“0x2”停止


我认为使用具有以下参数的cmake:

cmake .. -G "Visual Studio 12 Win64" -T CTP_Nov2013 -DCMAKE_BUILD_TYPE=Release ...

还需要定义u STDC_LIMIT_宏

您的意思是要使用Visual Studio 2015预览版吗?您正在使用CMake 3.1吗?据我所知,该版本中有一个生成器。我指的是安装在我的Visual Studio 2013中的。