C语言 使用 CMake 创建 VS 项目后出现 rint() 问题



我在编译代码时遇到问题 - 特别是 METIS - 串行图分区和减少填充矩阵排序。

我已经成功地通过两种方式从源文件中制作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的源文件中的问题?

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

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

最新更新