使用CMake创建VS Project后的rint()问题

时间:2016-02-22 19:25:57

标签: c visual-c++ cmake c99 cmake-gui

我在编写代码时出现问题 - 特别是METIS - Serial Graph Partitioning and Fill-reducing Matrix Ordering

我已经成功地通过两种方式从源文件中创建了Visual Studio 2013 Project:使用CMake GUI(版本3.4.3)和使用命令行。

但是,在我尝试在Visual Studio中构建创建的项目的两种情况下,我都收到错误:Error C2059: syntax error : '('在线

_CRTIMP double __cdecl rint(_In_ double _X);

其中_CRTIMP以这种方式定义:

#define _CRTIMP __declspec(dllimport)

这个问题是在CMake创建Visual Studio Project的过程中引起的,还是在METIS的源文件中出现问题?

2 个答案:

答案 0 :(得分:3)

转到:metis \ GKlib \ gk_arch.h和metisbin.h以及metislib.h。删除或重命名#define rint(x)((idx_t)((x)+0.5))它导致与math.h中的rint函数冲突。

答案 1 :(得分:1)

只注释掉metis \ GKlib \ gk_arch.h中的行#define rint(x) ((idx_t)((x)+0.5))就够了。