I get the following error when doing a superbuild:
[ 15%] Building CXX object
Utilities/vtkmetaio/CMakeFiles/vtkmetaio.dir/metaUtils.cxx.o
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:
In function ‘bool vtkmetaio::MET_StringToWordArray(const char*, int*,
char***)’:
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:805:3:
*error: ‘ptrdiff_t’ was not declared in this scope*
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:805:3:
note: suggested alternatives:
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h:156:28: note:
‘std::ptrdiff_t’
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h:156:28: note:
‘std::ptrdiff_t’
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:805:13:
error: expected ‘;’ before ‘l’
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:807:13:
error: expected ‘;’ before ‘p’
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:808:9:
error: ‘p’ was not declared in this scope
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:808:11:
error: ‘l’ was not declared in this scope
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:814:13:
error: expected ‘;’ before ‘pp’
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:816:9:
error: ‘pp’ was not declared in this scope
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:816:12:
error: ‘l’ was not declared in this scope
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:829:3:
error: ‘pp’ was not declared in this scope
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:829:6:
error: ‘l’ was not declared in this scope
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:845:13:
error: expected ‘;’ before ‘i’
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:846:7:
error: ‘i’ was not declared in this scope
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:848:8:
error: ‘p’ was not declared in this scope
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:854:11:
error: ‘p’ was not declared in this scope
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:858:5:
error: ‘j’ was not declared in this scope
/home/de066732/dev/MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx:859:11:
error: ‘p’ was not declared in this scope
make[5]: *** [Utilities/vtkmetaio/CMakeFiles/vtkmetaio.dir/metaUtils.cxx.o]
Error 1
make[4]: *** [Utilities/vtkmetaio/CMakeFiles/vtkmetaio.dir/all] Error 2
make[3]: *** [all] Error 2
make[2]: *** [CMakeExternals/Stamp/VTK/VTK-build] Error 2
make[1]: *** [CMakeFiles/VTK.dir/all] Error 2
make: *** [all] Error 2
I fixed the problem by fully qualifying the 4 instances of ptrdiff_t with
std:: namespace (see attached patch). Has anybody else run into this issue?
Would it make sense to include a VTK patch for this in the superbuild? I'm
on Ubuntu 11.10 with gcc-4.6, cmake-2.8.5, qt-4.7.4.
Also, in the process of researching this issue, I discovered that the build
requirements page is quite out of date:
http://www.mitk.org/wiki/Build_requirements
Taylor
--- MITK-superbuild.orig/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx 2010-09-27 16:40:10.000000000 -0400
+++ MITK-superbuild/CMakeExternals/Source/VTK/Utilities/vtkmetaio/metaUtils.cxx 2011-12-13 08:36:58.064257734 -0500
@@ -802,16 +802,16 @@
//
bool MET_StringToWordArray(const char *s, int *n, char ***val)
{
- ptrdiff_t l = strlen(s);
+ std::ptrdiff_t l = strlen(s);
- ptrdiff_t p = 0;
+ std::ptrdiff_t p = 0;
while(p<l && s[p] == ' ')
{
p++;
}
*n = 0;
- ptrdiff_t pp = p;
+ std::ptrdiff_t pp = p;
bool space = false;
while(pp<l)
{
@@ -842,7 +842,7 @@
*val = new char *[*n];
- ptrdiff_t i, j;
+ std::ptrdiff_t i, j;
for(i=0; i<*n; i++)
{
if(p == l)
------------------------------------------------------------------------------
Systems Optimization Self Assessment
Improve efficiency and utilization of IT resources. Drive out cost and
improve service delivery. Take 5 minutes to use this Systems Optimization
Self Assessment. http://www.accelacomm.com/jaw/sdnl/114/51450054/
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users