METIS does not build with Visual Studio 2010

Issue #81 resolved
Chris Beall created an issue

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)

  1. Andrew Melim

    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.

  2. Chris Beall 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.

  3. Chris Beall 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.

  4. Andrew Melim

    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

  5. Log in to comment