METIS does not build with Visual Studio 2010
This was reported by someone on the ASPN project. This is probably also an issue with more recent versions of Visual Studio. @nsrinivasan7 , does metis build for you?
Comments (9)
-
-
reporter I've confirmed this issue. Here's the output:
27>C:/Users/chris_000/git/gtsam/gtsam/3rdparty/metis-5.1.0/include\metis.h(75): warning C4005: 'INT32_MIN' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(74) : see previous definition of 'INT32_MIN' 27>C:/Users/chris_000/git/gtsam/gtsam/3rdparty/metis-5.1.0/include\metis.h(76): warning C4005: 'INT32_MAX' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(78) : see previous definition of 'INT32_MAX' 27>C:/Users/chris_000/git/gtsam/gtsam/3rdparty/metis-5.1.0/include\metis.h(77): warning C4005: 'INT64_MIN' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(149) : see previous definition of 'INT64_MIN' 27>C:/Users/chris_000/git/gtsam/gtsam/3rdparty/metis-5.1.0/include\metis.h(78): warning C4005: 'INT64_MAX' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(150) : see previous definition of 'INT64_MAX' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(59): error C2371: 'int8_t' : redefinition; different basic types 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(17) : see declaration of 'int8_t' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(79): error C2371: 'int_fast8_t' : redefinition; different basic types 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(33) : see declaration of 'int_fast8_t' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(80): error C2371: 'int_fast16_t' : redefinition; different basic types 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(34) : see declaration of 'int_fast16_t' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(84): error C2371: 'uint_fast16_t' : redefinition; different basic types 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(38) : see declaration of 'uint_fast16_t' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(205): warning C4005: 'INT8_C' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(116) : see previous definition of 'INT8_C' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(206): warning C4005: 'INT16_C' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(117) : see previous definition of 'INT16_C' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(207): warning C4005: 'INT32_C' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(118) : see previous definition of 'INT32_C' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(208): warning C4005: 'INT64_C' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(165) : see previous definition of 'INT64_C' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(210): warning C4005: 'UINT8_C' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(120) : see previous definition of 'UINT8_C' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(211): warning C4005: 'UINT16_C' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(121) : see previous definition of 'UINT16_C' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(212): warning C4005: 'UINT32_C' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(122) : see previous definition of 'UINT32_C' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(213): warning C4005: 'UINT64_C' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(166) : see previous definition of 'UINT64_C' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(216): warning C4005: 'INTMAX_C' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(167) : see previous definition of 'INTMAX_C' 27>c:\users\chris_000\git\gtsam\gtsam\3rdparty\metis-5.1.0\gklib\ms_stdint.h(217): warning C4005: 'UINTMAX_C' : macro redefinition 27> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(168) : see previous definition of 'UINTMAX_C' 27>C:/Users/chris_000/git/gtsam/gtsam/3rdparty/metis-5.1.0/GKlib\GKlib.h(51): fatal error C1083: Cannot open include file: 'regex.h': No such file or directory 27> 27>Build FAILED.
-
reporter Just for the record, this issue is due to the absence of stdint.h and intttypes.h in certain versions of Visual Studio. Metis works around the issue by supplying its own, taken from https://code.google.com/p/msinttypes/ , but they're outdated. The issue mostly goes away with the latest version of these headers.
-
-
assigned issue to
-
assigned issue to
-
Works on VS2013
-
- changed status to wontfix
Cannot reproduce on VS2010, fresh install of VC++ express 2010 with boost 1.56
-
- changed status to open
-
Redefinition issues was not replicated, but fixed issue where gklib redefined rint for visual studio, even though it's not included by default in VS12 math.h
-
- changed status to resolved
- Log in to comment
For their benefit while this issue is still a problem, there is a flag that disables the building of METIS which should help them avoid any critical build issues.
Could you be more specific on the issue encountered? All I did was hook METIS' cmake build system up to our own and there is a Build-windows.txt in the metis project indicating that it should just build without any additional effort.