由于msvc12的constexpr(C++11),nmake of(OSRM v4.5.0)失败
我对OSRM后端v4.5.0版本有一个问题,请参阅下文中的错误输出。msvc12不支持坐标.h中的constexpr。 问题是,如何强制cmake/nmake使用CTP编译器 谢谢你的回复 坐标h由于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 微软公司版权所有。
...
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中的。