AW: [Insight-users] Problem: Integrating ITK in an existing Project (VS 2005, C++) (error LNK2001)

Fieselmann, Andreas (ext) andreas.fieselmann.ext at siemens.com
Wed Nov 28 04:06:24 EST 2007


Hi Chris,

I had the same problem and got these linker error.
Unfortunately, I can't help on this. But you can consider to put all ITK code in a dll (use CMake to configure this dll).
Then you can access your ITK code from you project by calling functions from the dll.
Contact me if you need further assistance!

Regards,

Andreas


-----Ursprüngliche Nachricht-----
Von: insight-users-bounces+andreas.fieselmann.ext=siemens.com at itk.org [mailto:insight-users-bounces+andreas.fieselmann.ext=siemens.com at itk.org] Im Auftrag von Chris Duwenkamp
Gesendet: Dienstag, 27. November 2007 14:02
An: insight-users at itk.org
Betreff: [Insight-users] Problem: Integrating ITK in an existing Project (VS 2005, C++) (error LNK2001)

Hello,

I am trying to integrate ITK in an existing C++-project.

Therefor I have done the following steps:

1. downloading & decompress ITK 3.4.0
2. download C-Make 2.4
3. Build ITK with C-Make like described in the user guide

until this step everything went fine, ITK build properly and the build 
examples could be executet.

But now i have to integrate the ITK librarys in my existing project and 
thats where my problem is.
Normaly as described in the user guide you should use C-Make to create 
the project file, but hence my project is still existing I tried to set 
the neccessary project settings manully.

Therefor I have done the the following:

5. defined the systemvariables %ITK% and %ITK_BINARY% with the path to 
the ITK-source code and the directory i have build ITK in. (in my case 
%ITK% = C:\prog\dev\InsightToolkit-3.4.0 , %ITK_BINARY% = 
C:\prog\dev\itk_binary )

6. Added to "Configure Properties -> C/C++ -> General -> Additional 
Include Directories" the following directories:

$(ITK_BINARY);
$(ITK)\Code\Algorithms;
$(ITK)\Code\BasicFilters;
$(ITK)\Code\Common;
$(ITK)\Code\Numerics;
$(ITK)\Code\IO;
$(ITK)\Code\Numerics\FEM;
$(ITK)\Code\Numerics\Statistics;
$(ITK)\Code\Numerics\NeuralNetworks;
$(ITK)\Code\SpatialObject;
$(ITK)\Utilities\MetaIO;
$(ITK)\Utilities\NrrdIO;
$(ITK)\Utilities\DICOMParser;
$(ITK_BINARY)\Utilities\DICOMParser;
$(ITK_BINARY)\Utilities\expat;
$(ITK)\Utilities\expat;
$(ITK)\Utilities\nifti\niftilib;
$(ITK)\Utilities\nifti\znzlib;
$(ITK)\Utilities\itkExtHdrs;
$(ITK_BINARY)\Utilities;
$(ITK)\Utilities;
$(ITK_BINARY)\Code\Common;
$(ITK)\Utilities\vxl\vcl;
$(ITK)\Utilities\vxl\core;
$(ITK_BINARY)\Utilities\vxl\vcl;
$(ITK_BINARY)\Utilities\vxl\core;
$(ITK_BINARY)\Utilities\gdcm;
$(ITK)\Utilities\gdcm\src;
$(ITK)\Utilities\vxl\v3p\netlib;

7. Added under Linker->General->Additional Library Directories the 
Directory:

$(ITK_BINARY)\bin\debug

8. Added under Linker->Input->Additional Dependencies  the following libs:

ITKIO.lib
 ITKNrrdIO.lib
 itkgdcm.lib
 itkjpeg12.lib
 itkjpeg16.lib
 itkopenjpeg.lib 
 itkpng.lib
 itktiff.lib
 itkjpeg8.lib
 ITKSpatialObject.lib
 ITKCommon.lib
 itkvnl_inst.lib
 itkvnl_algo.lib
 itkv3p_netlib.lib
 itkvnl.lib
 itkvcl.lib
 ITKMetaIO.lib
 itksys.lib 
 ITKDICOMParser.lib
 ITKEXPAT.lib
 ITKniftiio.lib
 ITKznz.lib
 itkzlib.lib
kernel32.lib
 user32.lib
 gdi32.lib
 winspool.lib
 shell32.lib
 ole32.lib
 oleaut32.lib
 uuid.lib
 comdlg32.lib
 advapi32.lib 
 snmpapi.lib
 comctl32.lib
 wsock32.lib

9. There i thought I have configured everything and wanted to try it 
out, therefore i pasted the following code in one of my classes:

    typedef itk::Image< unsigned short, 3 > ImageType;       
    ImageType::Pointer image = ImageType::New();

and included  "itkImage.h" .

10. The compiling went well and no errors showed but when I tryed to 
build the project i got the following link-error :

ImportManager.obj : error LNK2001: unresolved external symbol "public: 
virtual void __thiscall itk::HRGN::Print(class 
std::basic_ostream<char,struct std::char_traits<char> > &,class 
itk::Indent)const " 
(?Print at HRGN@itk@@UBEXAAV?$basic_ostream at DU?$char_traits at D@std@@@std@@VIndent at 2@@Z)
ImportManager.obj : error LNK2001: unresolved external symbol 
"protected: virtual void __thiscall itk::HRGN::PrintHeader(class 
std::basic_ostream<char,struct std::char_traits<char> > &,class 
itk::Indent)const " 
(?PrintHeader at HRGN@itk@@MBEXAAV?$basic_ostream at DU?$char_traits at D@std@@@std@@VIndent at 2@@Z)
ImportManager.obj : error LNK2001: unresolved external symbol 
"protected: virtual void __thiscall itk::HRGN::PrintTrailer(class 
std::basic_ostream<char,struct std::char_traits<char> > &,class 
itk::Indent)const " 
(?PrintTrailer at HRGN@itk@@MBEXAAV?$basic_ostream at DU?$char_traits at D@std@@@std@@VIndent at 2@@Z)
ImportManager.obj : error LNK2001: unresolved external symbol 
"protected: virtual void __thiscall itk::HRGN::PrintSelf(class 
std::basic_ostream<char,struct std::char_traits<char> > &,class 
itk::Indent)const " 
(?PrintSelf at HRGN@itk@@MBEXAAV?$basic_ostream at DU?$char_traits at D@std@@@std@@VIndent at 2@@Z)
ImportManager.obj : error LNK2001: unresolved external symbol "public: 
static double const itk::NumericTraits<double>::Zero" 
(?Zero@?$NumericTraits at N@itk@@2NB)

Did I forget to include something ?

Thanks a lot for yiur help,

Chris

(PS: excuse my bad spelling, but english is not my nativ language)
_______________________________________________
Insight-users mailing list
Insight-users at itk.org
http://www.itk.org/mailman/listinfo/insight-users


More information about the Insight-users mailing list