我在使用 nmake 构建 OSRM 后端 v4.5.0 时遇到问题(请参阅下文的错误输出)。msvc12 不支持“Coordinate.h”中的“constexpr”。 问题是,如何强制 cmake/nmake 使用 CTP 编译器!?
感谢您的回复
坐标.h
... namespace { constexpr float COORDINATE_PRECISION = 1000000.f; } ...
错误输出
D:\osrm450be\build>nmake
Microsoft (R) 程序维护实用程序版本 12.00.21005.1 版权所有 (C) Microsoft Corporation。版权所有。
扫描目标 COORDINATE [ 2%] 的依赖关系 构建 CXX 对象 CMakeFiles/COORDINATE.dir/data_structures/Coordinate.cpp.obj Coordinate.cpp D:\osrm450be\Include\osrm/Coordinate.h(37) : error C2144: syntax error : 'float' 前面应该有 ';' D:\osrm450be\Include\osrm/Coordinate.h(37):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数 D:\osrm450be\data_structures\Coordinate.cpp(290):警告 C4244:'=':从 'double' 转换为 'float',可能丢失数据 NMAKE:致命错误 U1077: 'C:\PROGRA~2\MICROS~2.0\VC\bin\cl.exe' : 返回码 '0x2' 停止。NMAKE:致命错误 U1077:'"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe"':返回代码 '0x2' 停止。制作: