ISO C++ 2011 standard for PatchMatchCUDA
Describe the bug
Cmake error when compiling the latest OpenVMS version with CUDA. The error message is " In file included from /usr/include/c++/5/cstdint:35:0,
from /home/jianwei/Documents/OpenMVS_dynamic/openMVS/libs/MVS/PatchMatchCUDA.inl:40,
from /home/jianwei/Documents/OpenMVS_dynamic/openMVS/libs/MVS/PatchMatchCUDA.cu:32:
/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support
"
To Reproduce
Steps to reproduce the behavior:
cmake . ../openMVS -DCMAKE_BUILD_TYPE=Release -DVCG_ROOT="/home/jianwei/Documents/OpenMVS_dynamic/vcglib"
-- The C compiler identification is GNU 5.5.0
-- The CXX compiler identification is GNU 5.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detected version of GNU GCC: 55 (505)
Compiling with C++17
-- Performing Test HAVE_CXX_W
-- Performing Test HAVE_CXX_W - Success
-- Performing Test HAVE_C_W
-- Performing Test HAVE_C_W - Success
-- Performing Test HAVE_CXX_WALL
-- Performing Test HAVE_CXX_WALL - Success
-- Performing Test HAVE_C_WALL
-- Performing Test HAVE_C_WALL - Success
-- Performing Test HAVE_CXX_WERROR_ADDRESS
-- Performing Test HAVE_CXX_WERROR_ADDRESS - Success
-- Performing Test HAVE_C_WERROR_ADDRESS
-- Performing Test HAVE_C_WERROR_ADDRESS - Success
-- Performing Test HAVE_CXX_WERROR_SEQUENCE_POINT
-- Performing Test HAVE_CXX_WERROR_SEQUENCE_POINT - Success
-- Performing Test HAVE_C_WERROR_SEQUENCE_POINT
-- Performing Test HAVE_C_WERROR_SEQUENCE_POINT - Success
-- Performing Test HAVE_CXX_WFORMAT
-- Performing Test HAVE_CXX_WFORMAT - Success
-- Performing Test HAVE_C_WFORMAT
-- Performing Test HAVE_C_WFORMAT - Success
-- Performing Test HAVE_CXX_WERROR_FORMAT_SECURITY
-- Performing Test HAVE_CXX_WERROR_FORMAT_SECURITY - Success
-- Performing Test HAVE_C_WERROR_FORMAT_SECURITY
-- Performing Test HAVE_C_WERROR_FORMAT_SECURITY - Success
-- Performing Test HAVE_CXX_WSTRICT_PROTOTYPES
-- Performing Test HAVE_CXX_WSTRICT_PROTOTYPES - Failed
-- Performing Test HAVE_C_WSTRICT_PROTOTYPES
-- Performing Test HAVE_C_WSTRICT_PROTOTYPES - Success
-- Performing Test HAVE_CXX_WINIT_SELF
-- Performing Test HAVE_CXX_WINIT_SELF - Success
-- Performing Test HAVE_C_WINIT_SELF
-- Performing Test HAVE_C_WINIT_SELF - Success
-- Performing Test HAVE_CXX_WSIGN_PROMO
-- Performing Test HAVE_CXX_WSIGN_PROMO - Success
-- Performing Test HAVE_C_WSIGN_PROMO
-- Performing Test HAVE_C_WSIGN_PROMO - Failed
-- Performing Test HAVE_CXX_WREORDER
-- Performing Test HAVE_CXX_WREORDER - Success
-- Performing Test HAVE_C_WREORDER
-- Performing Test HAVE_C_WREORDER - Failed
-- Performing Test HAVE_CXX_WNO_UNDEF
-- Performing Test HAVE_CXX_WNO_UNDEF - Success
-- Performing Test HAVE_C_WNO_UNDEF
-- Performing Test HAVE_C_WNO_UNDEF - Success
-- Performing Test HAVE_CXX_WNO_SWITCH
-- Performing Test HAVE_CXX_WNO_SWITCH - Success
-- Performing Test HAVE_C_WNO_SWITCH
-- Performing Test HAVE_C_WNO_SWITCH - Success
-- Performing Test HAVE_CXX_WNO_SWITCH_ENUM
-- Performing Test HAVE_CXX_WNO_SWITCH_ENUM - Success
-- Performing Test HAVE_C_WNO_SWITCH_ENUM
-- Performing Test HAVE_C_WNO_SWITCH_ENUM - Success
-- Performing Test HAVE_CXX_WNO_SWITCH_DEFAULT
-- Performing Test HAVE_CXX_WNO_SWITCH_DEFAULT - Success
-- Performing Test HAVE_C_WNO_SWITCH_DEFAULT
-- Performing Test HAVE_C_WNO_SWITCH_DEFAULT - Success
-- Performing Test HAVE_CXX_WNO_IMPLICIT_FALLTHROUGH
-- Performing Test HAVE_CXX_WNO_IMPLICIT_FALLTHROUGH - Failed
-- Performing Test HAVE_C_WNO_IMPLICIT_FALLTHROUGH
-- Performing Test HAVE_C_WNO_IMPLICIT_FALLTHROUGH - Failed
-- Performing Test HAVE_CXX_WNO_COMMENT
-- Performing Test HAVE_CXX_WNO_COMMENT - Success
-- Performing Test HAVE_C_WNO_COMMENT
-- Performing Test HAVE_C_WNO_COMMENT - Success
-- Performing Test HAVE_CXX_WNO_NARROWING
-- Performing Test HAVE_CXX_WNO_NARROWING - Success
-- Performing Test HAVE_C_WNO_NARROWING
-- Performing Test HAVE_C_WNO_NARROWING - Success
-- Performing Test HAVE_CXX_WNO_ATTRIBUTES
-- Performing Test HAVE_CXX_WNO_ATTRIBUTES - Success
-- Performing Test HAVE_C_WNO_ATTRIBUTES
-- Performing Test HAVE_C_WNO_ATTRIBUTES - Success
-- Performing Test HAVE_CXX_WNO_IGNORED_ATTRIBUTES
-- Performing Test HAVE_CXX_WNO_IGNORED_ATTRIBUTES - Failed
-- Performing Test HAVE_C_WNO_IGNORED_ATTRIBUTES
-- Performing Test HAVE_C_WNO_IGNORED_ATTRIBUTES - Failed
-- Performing Test HAVE_CXX_WNO_MAYBE_UNINITIALIZED
-- Performing Test HAVE_CXX_WNO_MAYBE_UNINITIALIZED - Success
-- Performing Test HAVE_C_WNO_MAYBE_UNINITIALIZED
-- Performing Test HAVE_C_WNO_MAYBE_UNINITIALIZED - Success
-- Performing Test HAVE_CXX_WNO_ENUM_COMPARE
-- Performing Test HAVE_CXX_WNO_ENUM_COMPARE - Success
-- Performing Test HAVE_C_WNO_ENUM_COMPARE
-- Performing Test HAVE_C_WNO_ENUM_COMPARE - Success
-- Performing Test HAVE_CXX_WNO_MISLEADING_INDENTATION
-- Performing Test HAVE_CXX_WNO_MISLEADING_INDENTATION - Failed
-- Performing Test HAVE_C_WNO_MISLEADING_INDENTATION
-- Performing Test HAVE_C_WNO_MISLEADING_INDENTATION - Failed
-- Performing Test HAVE_CXX_WNO_MISSING_FIELD_INITIALIZERS
-- Performing Test HAVE_CXX_WNO_MISSING_FIELD_INITIALIZERS - Success
-- Performing Test HAVE_C_WNO_MISSING_FIELD_INITIALIZERS
-- Performing Test HAVE_C_WNO_MISSING_FIELD_INITIALIZERS - Success
-- Performing Test HAVE_CXX_WNO_UNUSED_RESULT
-- Performing Test HAVE_CXX_WNO_UNUSED_RESULT - Success
-- Performing Test HAVE_C_WNO_UNUSED_RESULT
-- Performing Test HAVE_C_WNO_UNUSED_RESULT - Success
-- Performing Test HAVE_CXX_WNO_UNUSED_FUNCTION
-- Performing Test HAVE_CXX_WNO_UNUSED_FUNCTION - Success
-- Performing Test HAVE_C_WNO_UNUSED_FUNCTION
-- Performing Test HAVE_C_WNO_UNUSED_FUNCTION - Success
-- Performing Test HAVE_CXX_WNO_UNUSED_PARAMETER
-- Performing Test HAVE_CXX_WNO_UNUSED_PARAMETER - Success
-- Performing Test HAVE_C_WNO_UNUSED_PARAMETER
-- Performing Test HAVE_C_WNO_UNUSED_PARAMETER - Success
-- Performing Test HAVE_CXX_WNO_DELETE_INCOMPLETE
-- Performing Test HAVE_CXX_WNO_DELETE_INCOMPLETE - Success
-- Performing Test HAVE_C_WNO_DELETE_INCOMPLETE
-- Performing Test HAVE_C_WNO_DELETE_INCOMPLETE - Failed
-- Performing Test HAVE_CXX_WNO_UNNAMED_TYPE_TEMPLATE_ARGS
-- Performing Test HAVE_CXX_WNO_UNNAMED_TYPE_TEMPLATE_ARGS - Failed
-- Performing Test HAVE_C_WNO_UNNAMED_TYPE_TEMPLATE_ARGS
-- Performing Test HAVE_C_WNO_UNNAMED_TYPE_TEMPLATE_ARGS - Failed
-- Performing Test HAVE_CXX_WNO_INT_IN_BOOL_CONTEXT
-- Performing Test HAVE_CXX_WNO_INT_IN_BOOL_CONTEXT - Failed
-- Performing Test HAVE_C_WNO_INT_IN_BOOL_CONTEXT
-- Performing Test HAVE_C_WNO_INT_IN_BOOL_CONTEXT - Failed
-- Performing Test HAVE_CXX_FDIAGNOSTICS_SHOW_OPTION
-- Performing Test HAVE_CXX_FDIAGNOSTICS_SHOW_OPTION - Success
-- Performing Test HAVE_C_FDIAGNOSTICS_SHOW_OPTION
-- Performing Test HAVE_C_FDIAGNOSTICS_SHOW_OPTION - Success
-- Performing Test HAVE_CXX_FTEMPLATE_BACKTRACE_LIMIT_0
-- Performing Test HAVE_CXX_FTEMPLATE_BACKTRACE_LIMIT_0 - Success
-- Performing Test HAVE_C_FTEMPLATE_BACKTRACE_LIMIT_0
-- Performing Test HAVE_C_FTEMPLATE_BACKTRACE_LIMIT_0 - Failed
-- Performing Test HAVE_CXX_WNO_LONG_LONG
-- Performing Test HAVE_CXX_WNO_LONG_LONG - Success
-- Performing Test HAVE_C_WNO_LONG_LONG
-- Performing Test HAVE_C_WNO_LONG_LONG - Success
-- Performing Test HAVE_CXX_PTHREAD
-- Performing Test HAVE_CXX_PTHREAD - Success
-- Performing Test HAVE_C_PTHREAD
-- Performing Test HAVE_C_PTHREAD - Success
-- Performing Test HAVE_CXX_FOMIT_FRAME_POINTER
-- Performing Test HAVE_CXX_FOMIT_FRAME_POINTER - Success
-- Performing Test HAVE_C_FOMIT_FRAME_POINTER
-- Performing Test HAVE_C_FOMIT_FRAME_POINTER - Success
-- Performing Test HAVE_CXX_FROUNDING_MATH
-- Performing Test HAVE_CXX_FROUNDING_MATH - Success
-- Performing Test HAVE_C_FROUNDING_MATH
-- Performing Test HAVE_C_FROUNDING_MATH - Success
-- Performing Test HAVE_CXX_MSSE
-- Performing Test HAVE_CXX_MSSE - Success
-- Performing Test HAVE_C_MSSE
-- Performing Test HAVE_C_MSSE - Success
-- Performing Test HAVE_CXX_MSSE2
-- Performing Test HAVE_CXX_MSSE2 - Success
-- Performing Test HAVE_C_MSSE2
-- Performing Test HAVE_C_MSSE2 - Success
-- Performing Test HAVE_CXX_MSSE3
-- Performing Test HAVE_CXX_MSSE3 - Success
-- Performing Test HAVE_C_MSSE3
-- Performing Test HAVE_C_MSSE3 - Success
-- Performing Test HAVE_CXX_MSSSE3
-- Performing Test HAVE_CXX_MSSSE3 - Success
-- Performing Test HAVE_C_MSSSE3
-- Performing Test HAVE_C_MSSSE3 - Success
-- Performing Test HAVE_CXX_MSSE4_1
-- Performing Test HAVE_CXX_MSSE4_1 - Success
-- Performing Test HAVE_C_MSSE4_1
-- Performing Test HAVE_C_MSSE4_1 - Success
-- Performing Test HAVE_CXX_MSSE4_2
-- Performing Test HAVE_CXX_MSSE4_2 - Success
-- Performing Test HAVE_C_MSSE4_2
-- Performing Test HAVE_C_MSSE4_2 - Success
-- Performing Test HAVE_CXX_FFUNCTION_SECTIONS
-- Performing Test HAVE_CXX_FFUNCTION_SECTIONS - Success
-- Performing Test HAVE_C_FFUNCTION_SECTIONS
-- Performing Test HAVE_C_FFUNCTION_SECTIONS - Success
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Found OpenMP_C: -fopenmp (found version "4.0")
-- Found OpenMP_CXX: -fopenmp (found version "4.0")
-- Found OpenMP: TRUE (found version "4.0")
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found CUDA: /usr/local/cuda-9.0 (found version "9.0")
-- The CUDA compiler identification is NVIDIA 9.0.176
-- Check for working CUDA compiler: /usr/local/cuda-9.0/bin/nvcc
-- Check for working CUDA compiler: /usr/local/cuda-9.0/bin/nvcc -- works
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- WARNING: BREAKPAD was not found: Please specify BREAKPAD directory using BREAKPAD_ROOT env. variable
-- Can't find BreakPad. Continuing without it.
-- Found Boost: /usr/local/lib/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: iostreams program_options system serialization
-- Found Eigen3: /usr/local/include/eigen3 (Required is at least version "2.91.0")
-- Eigen 3.2.10 found (include: /usr/local/include/eigen3)
-- Found OpenCV: /usr/local (found version "3.4.1")
-- OpenCV 3.4.1 found (include: /usr/local/include;/usr/local/include/opencv)
-- __cplusplus is 201500
-- --> Do not link with Boost.Thread
-- Found Boost: /usr/local/lib/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.48")
-- Boost include dirs: /usr/local/include
-- Boost libraries:
-- VCG found (include: /home/jianwei/Documents/OpenMVS_dynamic/vcglib)
-- GLEW 1.13.0 found (include: /usr/include)
-- GLFW3 3.4.0 found (include: )
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jianwei/Documents/OpenMVS_dynamic/openMVS_build
Scanning dependencies of target Common
[ 1%] Building CXX object libs/Common/CMakeFiles/Common.dir/cmake_pch.hxx.gch
[ 2%] Building CXX object libs/Common/CMakeFiles/Common.dir/ConfigTable.cpp.o
[ 4%] Building CXX object libs/Common/CMakeFiles/Common.dir/Common.cpp.o
[ 5%] Building CXX object libs/Common/CMakeFiles/Common.dir/EventQueue.cpp.o
[ 7%] Building CXX object libs/Common/CMakeFiles/Common.dir/Log.cpp.o
[ 8%] Building CXX object libs/Common/CMakeFiles/Common.dir/Timer.cpp.o
[ 11%] Building CXX object libs/Common/CMakeFiles/Common.dir/SML.cpp.o
[ 11%] Building CXX object libs/Common/CMakeFiles/Common.dir/Types.cpp.o
[ 13%] Building CXX object libs/Common/CMakeFiles/Common.dir/Util.cpp.o
/home/jianwei/Documents/OpenMVS_dynamic/openMVS/libs/Common/Util.cpp: In function ‘CPUINFO GetCPUInfo()’:
/home/jianwei/Documents/OpenMVS_dynamic/openMVS/libs/Common/Util.cpp:533:21: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
((int)info.vendor) = CPUInfo[1];
^
[ 14%] Building CXX object libs/Common/CMakeFiles/Common.dir/UtilCUDA.cpp.o
[ 15%] Linking CXX static library ../../lib/libCommon.a
[ 15%] Built target Common
Scanning dependencies of target Math
Scanning dependencies of target IO
[ 17%] Building CXX object libs/Math/CMakeFiles/Math.dir/cmake_pch.hxx.gch
[ 18%] Building CXX object libs/IO/CMakeFiles/IO.dir/cmake_pch.hxx.gch
[ 20%] Building CXX object libs/IO/CMakeFiles/IO.dir/Common.cpp.o
[ 21%] Building CXX object libs/IO/CMakeFiles/IO.dir/Image.cpp.o
[ 23%] Building CXX object libs/IO/CMakeFiles/IO.dir/ImageDDS.cpp.o
[ 24%] Building CXX object libs/IO/CMakeFiles/IO.dir/ImageJPG.cpp.o
[ 28%] Building CXX object libs/IO/CMakeFiles/IO.dir/ImageBMP.cpp.o
[ 28%] Building CXX object libs/IO/CMakeFiles/IO.dir/ImagePNG.cpp.o
[ 28%] Building CXX object libs/IO/CMakeFiles/IO.dir/ImageSCI.cpp.o
[ 30%] Building CXX object libs/Math/CMakeFiles/Math.dir/Common.cpp.o
[ 31%] Building CXX object libs/IO/CMakeFiles/IO.dir/ImageTGA.cpp.o
[ 33%] Building CXX object libs/Math/CMakeFiles/Math.dir/IBFS/IBFS.cpp.o
[ 34%] Building CXX object libs/IO/CMakeFiles/IO.dir/ImageTIFF.cpp.o
[ 36%] Building CXX object libs/IO/CMakeFiles/IO.dir/OBJ.cpp.o
[ 37%] Building CXX object libs/IO/CMakeFiles/IO.dir/PLY.cpp.o
[ 39%] Building CXX object libs/Math/CMakeFiles/Math.dir/LMFit/lmmin.cpp.o
[ 40%] Building CXX object libs/IO/CMakeFiles/IO.dir/TinyXML2.cpp.o
[ 42%] Linking CXX static library ../../lib/libMath.a
[ 42%] Built target Math
[ 43%] Linking CXX static library ../../lib/libIO.a
[ 43%] Built target IO
Scanning dependencies of target MVS
[ 44%] Building CXX object libs/MVS/CMakeFiles/MVS.dir/cmake_pch.hxx.gch
[ 46%] Building CUDA object libs/MVS/CMakeFiles/MVS.dir/PatchMatchCUDA.cu.o
In file included from /usr/include/c++/5/cstdint:35:0,
from /home/jianwei/Documents/OpenMVS_dynamic/openMVS/libs/MVS/PatchMatchCUDA.inl:40,
from /home/jianwei/Documents/OpenMVS_dynamic/openMVS/libs/MVS/PatchMatchCUDA.cu:32:
/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support
^
libs/MVS/CMakeFiles/MVS.dir/build.make:316: recipe for target 'libs/MVS/CMakeFiles/MVS.dir/PatchMatchCUDA.cu.o' failed
make[2]: *** [libs/MVS/CMakeFiles/MVS.dir/PatchMatchCUDA.cu.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:471: recipe for target 'libs/MVS/CMakeFiles/MVS.dir/all' failed
make[1]: *** [libs/MVS/CMakeFiles/MVS.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
CUDA code is using C++17, pls make sure your compilers combo supports it
Hi! I encouter the same problem, have you solve this?
you may check your gcc&g++ version, i solved this problem by updating gcc&g++ version from 5.4 to 7.5 ! (with eigen 3.4, opencv 4.5)
Hello, I have encountered the same problem, I have checked the gcc version, it is 7.5, in addition, my cuda is 11.3, what other reasons are wrong?