0

我在使用 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' 停止。制作:

4

2 回答 2

0

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

cmake .. -G "Visual Studio 12 Win64" -T CTP_Nov2013 -DCMAKE_BUILD_TYPE=Release ...
于 2015-01-27T10:39:16.153 回答
0

还需要定义“__STDC_LIMIT_MACROS”

于 2015-02-13T08:29:02.627 回答