我在编译代码时遇到问题 - 特别是 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))
行就足够了。