[Insight-users] Using ITK in a Cocoa App (+Xcode)

Michael Jackson mike.jackson at bluequartz.net
Mon Oct 19 14:44:40 EDT 2009


Objective-C++ is exactly how it sounds. Any valid C++ and Objective C  
can be used in the same file, or even within the same line of code ..


_________________________________________________________
Mike Jackson                  mike.jackson at bluequartz.net
BlueQuartz Software                    www.bluequartz.net
Principal Software Engineer                  Dayton, Ohio

On Oct 19, 2009, at 2:38 PM, Luis Ibanez wrote:

> Hi Oliver,
>
> The two first compilation errors
>
> InsightToolkit/Common/itkSmartPointer.h:129: error: expected ';'
> before '(' token
> InsightToolkit/Common/itkMacro.h:533: error: expected class-name
> before '{' token
>
> are related to missing declarations of
>
>  * std::ostream
>  * std::ostringstream
>
> Are you by any chance doing something like:
>
>
>     using namespace std:
>
>
> in your code ?
>
>
> Also,
>
>   I'm illiterate on Objective-C++      :-/
>
> Could you please tell us if you are allowed to use
> std::streams in an Objective-C++ file ?
>
>
>     Thanks
>
>
>            Luis
>
>
> ----------------------------------------------------
> On Wed, Oct 14, 2009 at 2:06 PM, Olivier Saut  
> <saut.olivier at orange.fr> wrote:
>> Hi all,
>>
>> sorry if it is a frequent question but I have not found any working  
>> solution
>> to my problem: I am trying (without success so far) to use ITK in a  
>> Cocoa
>> app  on Snow Leopard (Xcode 3.2) . Project file was generated from  
>> Xcode.
>>
>> I have  set the filetype of the file containing the ITK calls to
>> Objective-C++ (sourcecode.cpp.objcpp), Header and Library Search  
>> Paths are
>> set to find ITK files. However I still have the following errors  
>> just by
>> including itkImage. (I can use ITK within a command line app in C++.)
>>
>> Anyone knows what I am doing wrong?
>>
>>
>> Thanks!
>>
>> -- Source file ---
>> #import "Segmenter.hpp"
>>
>> #ifdef __cplusplus
>> // (found on http://www.nabble.com/Re:-itk-vtk-and-cocoa-p20230764.html)
>> // Define undefined constant to avoid warnings.
>> #define ITK_TEMPLATE_CXX 0
>> #define ITK_TEMPLATE_TYPE 0
>> #include<itkImage.h>
>> #endif
>>
>> @implementation Segmenter
>> - (id) init {
>>  self=[super init];
>>  if(self != nil) {
>>
>>  }
>>  return self;
>> }
>>
>> @end
>> -- End of Source file --
>>
>> -- Error Log --
>> Build CSeg of project CSeg with configuration Debug
>>
>> CompileC build/CSeg.build/Debug/CSeg.build/Objects-normal/x86_64/ 
>> Segmenter.o
>> Segmenter.mm normal x86_64 objective-c++ com.apple.compilers.gcc.4_2
>> cd /Users/saut/Dropbox/CSeg
>> setenv LANG en_US.US-ASCII
>> /Developer/usr/bin/gcc-4.2 -x objective-c++ -arch x86_64 -fmessage- 
>> length=0
>> -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -pg -Wreturn- 
>> type
>> -Wunused-variable -isysroot /Developer/SDKs/MacOSX10.6.sdk
>> -mfix-and-continue -fobjc-gc -fvisibility-inlines-hidden
>> -mmacosx-version-min=10.6 -gdwarf-2 -fopenmp -iquote
>> /Users/saut/Dropbox/CSeg/build/CSeg.build/Debug/CSeg.build/CSeg- 
>> generated-files.hmap
>> -I/Users/saut/Dropbox/CSeg/build/CSeg.build/Debug/CSeg.build/CSeg- 
>> own-target-headers.hmap
>> -I/Users/saut/Dropbox/CSeg/build/CSeg.build/Debug/CSeg.build/CSeg- 
>> all-target-headers.hmap
>> -iquote
>> /Users/saut/Dropbox/CSeg/build/CSeg.build/Debug/CSeg.build/CSeg- 
>> project-headers.hmap
>> -F/Users/saut/Dropbox/CSeg/build/Debug
>> -I/Users/saut/Dropbox/CSeg/build/Debug/include
>> -I/Users/saut/thrill/include/InsightToolkit
>> -I/Users/saut/thrill/include/InsightToolkit/Algorithms
>> -I/Users/saut/thrill/include/InsightToolkit/BasicFilters
>> -I/Users/saut/thrill/include/InsightToolkit/Common
>> -I/Users/saut/thrill/include/InsightToolkit/gdcm
>> -I/Users/saut/thrill/include/InsightToolkit/IO
>> -I/Users/saut/thrill/include/InsightToolkit/Numerics
>> -I/Users/saut/thrill/include/InsightToolkit/SpatialObject
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities
>> -I/Users/saut/thrill/include/InsightToolkit/gdcm/Dicts
>> -I/Users/saut/thrill/include/InsightToolkit/gdcm/src
>> -I/Users/saut/thrill/include/InsightToolkit/Numerics/FEM
>> -I/Users/saut/thrill/include/InsightToolkit/Numerics/NeuralNetworks
>> -I/Users/saut/thrill/include/InsightToolkit/Numerics/Statistics
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/expat
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/itkExtHdrs
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/itkpng
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/itksys
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/itktiff
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/itkzlib
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/MetaIO
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/NrrdIO
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/itksys/ios
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/itksys/stl
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/core
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/core/vnl
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/netlib
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/ 
>> borland55
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/ 
>> borland56
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/egcs
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/ 
>> emulation
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/gcc
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/gcc-295
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/gcc- 
>> libstdcxx-v3
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/generic
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/iso
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/mwerks
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/sgi
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/stlport
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/sunpro
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/vcl_sys
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/win32- 
>> vc60
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/vcl/win32- 
>> vc70
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/core/vnl/ 
>> algo
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/blas
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/datapac
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/eispack
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/lapack
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/laso
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/linalg
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/linpack
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/mathews
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/minpack
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/napack
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/opt
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/sparse
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/temperton
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/toms
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/lapack/complex16
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/lapack/double
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/lapack/single
>> -I/Users/saut/thrill/include/InsightToolkit/Utilities/vxl/v3p/ 
>> netlib/lapack/util
>> -I/Users/saut/Dropbox/CSeg/build/CSeg.build/Debug/CSeg.build/ 
>> DerivedSources/x86_64
>> -I/Users/saut/Dropbox/CSeg/build/CSeg.build/Debug/CSeg.build/ 
>> DerivedSources
>> -include
>> /var/folders/Wa/WaB1Wzw+HaCPXA71ALf6+++++TI/-Caches-/ 
>> com.apple.Xcode.501/SharedPrecompiledHeaders/CSeg_Prefix- 
>> bdswsgxfpnuwmmchklxbfrubchhw/CSeg_Prefix.pch
>> -c /Users/saut/Dropbox/CSeg/Segmenter.mm -o
>> /Users/saut/Dropbox/CSeg/build/CSeg.build/Debug/CSeg.build/Objects- 
>> normal/x86_64/Segmenter.o
>>
>> In file included from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkLightObject.h:20,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkObject.h:23,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkDataObject.h:23,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkImageBase.h:23,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkImage.h:20,
>>              from /Users/saut/Dropbox/CSeg/Segmenter.mm:16:
>> /Users/saut/thrill/include/InsightToolkit/Common/itkSmartPointer.h: 
>> 129:
>> error: expected ';' before '(' token
>> /Users/saut/thrill/include/InsightToolkit/Common/itkSmartPointer.h: 
>> 136:
>> error: expected `;' before 'private'
>> /Users/saut/thrill/include/InsightToolkit/Common/itkSmartPointer.h: 
>> 153:
>> error: expected constructor, destructor, or type conversion before  
>> '&' token
>> In file included from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkTimeStamp.h:23,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkLightObject.h:21,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkObject.h:23,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkDataObject.h:23,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkImageBase.h:23,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkImage.h:20,
>>              from /Users/saut/Dropbox/CSeg/Segmenter.mm:16:
>> /Users/saut/thrill/include/InsightToolkit/Common/itkMacro.h:533:  
>> error:
>> expected class-name before '{' token
>> In file included from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkMacro.h:589,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkTimeStamp.h:23,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkLightObject.h:21,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkObject.h:23,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkDataObject.h:23,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkImageBase.h:23,
>>              from
>> /Users/saut/thrill/include/InsightToolkit/Common/itkImage.h:20,
>>              from /Users/saut/Dropbox/CSeg/Segmenter.mm:16:
>> /Users/saut/thrill/include/InsightToolkit/Common/ 
>> itkExceptionObject.h:55:
>> error: expected class-name before '{' token
>> /Users/saut/thrill/include/InsightToolkit/Common/ 
>> itkExceptionObject.h:57:
>> error: 'exception' in namespace 'std' does not name a type
>> /Users/saut/thrill/include/InsightToolkit/Common/ 
>> itkExceptionObject.h:64:
>> error: expected unqualified-id before '&' token
>> /Users/saut/thrill/include/InsightToolkit/Common/ 
>> itkExceptionObject.h:64:
>> error: expected ',' or '...' before '&' token
>> /Users/saut/thrill/include/InsightToolkit/Common/ 
>> itkExceptionObject.h:66:
>> error: 'itk::ExceptionObject::ExceptionObject()' cannot be overloaded
>> ---
>>
>>
>> Thanks a lot,
>>
>>
>>    - Olivier
>>
>>
>> _____________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-users
>>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users



More information about the Insight-users mailing list