编译环境: Ubuntu 12.04, 本来自带4.6.3版本的gcc,但是之前为了编译某个程序,修改过gcc版本,现在系统默认gcc 4.8。编译安装官网下载来的InsightToolkit-3.20.1.tar.gz,出现如下奇怪错误:
[ 56%] Building CXX object Testing/Code/Common/CMakeFiles/itkCommonTests.dir/itkFloodFilledSpatialFunctionTest.o
In file included from /usr/local/src/InsightToolkit-3.20.1/Code/Common/itkMath.h:28:0,
from /usr/local/src/InsightToolkit-3.20.1/Code/Common/itkIndex.h:24,
from /usr/local/src/InsightToolkit-3.20.1/Testing/Code/Common/itkFloodFilledSpatialFunctionTest.cxx:30:
/usr/local/src/InsightToolkit-3.20.1/Code/Common/itkConceptChecking.h: In member function ‘void itk::Concept::HasNumericTraits<T>::Constraints::constraints()’:
…...
/usr/local/src/InsightToolkit-3.20.1/Code/Common/itkConceptChecking.h: In member function ‘void itk::Concept::HasJoinTraits<T1, T2>::Constraints::constraints()’:
/usr/local/src/InsightToolkit-3.20.1/Code/Common/itkConceptChecking.h:641:54: warning: typedef ‘ValueType’ locally defined but not used [-Wunused-local-typedefs]
typedef typename JoinTraits<T1, T2>::ValueType ValueType;
^
In file included from /usr/local/src/InsightToolkit-3.20.1/Testing/Code/Common/itkFloodFilledSpatialFunctionTest.cxx:29:0:
/usr/local/src/InsightToolkit-3.20.1/Code/Common/itkSize.h: In instantiation of ‘void itk::Size<VDimension>::SetSize(const SizeValueType*) [with unsigned int VDimension = 2u; itk::Size<VDimension>::SizeValueType = long unsigned int]’:
/usr/local/src/InsightToolkit-3.20.1/Testing/Code/Common/itkFloodFilledSpatialFunctionTest.cxx:62:50: required from here
/usr/local/src/InsightToolkit-3.20.1/Code/Common/itkSize.h:154:59: error: ‘memcpy’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
{ memcpy(m_Size, val, sizeof(SizeValueType)*VDimension); }