[Insight-users] [ITK Community] QtITK Bluiding problem (linking problem) please help
Adem breckon
adem.breckon at gmail.com
Fri Nov 8 13:03:53 EST 2013
Hi Matt,
I changed CMakeLists.txt as you suggested as follows:
PROJECT(myProject)
FIND_PACKAGE ( ITK)
IF ( ITK_FOUND)
INCLUDE( ${USE_ITK_FILE} )
ENDIF( ITK_FOUND)
# Find QT
FIND_PACKAGE( Qt4 REQUIRED )
#INCLUDE( ${QT_USE_FILE} )
INCLUDE_DIRECTORIES(
${QT_INCLUDES}
${QT_INCLUDE_DIR}
${QT_QTGUI_INCLUDE_DIR}
${QT_QTCORE_INCLUDE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
SET( QtITK.cpp itkQtProgressBar.cxx qtITK.cxx)
SET( QtITK_MOC_SRCS itkQtAdaptor.h itkQtLightIndicator.h)
#IF(QT_WRAP_CPP)
# QT_WRAP_CPP(QtITK QtITK_SRCS QtITK_MOC_SRCS)
#ENDIF(QT_WRAP_CPP
ADD_EXECUTABLE( QtITK QtITK.cxx)
TARGET_LINK_LIBRARIES (QtITK
${ITK_LIBRARIES}
${QT_LIBRARIES}
${QT_QTCORE_LIBRARY}
${QT_QTGUI_LIBRARY}
)
But I still got the same linking error? any other suggestions?
Thanks,
Adem.
On 8 November 2013 17:25, Matt McCormick <matt.mccormick at kitware.com> wrote:
> Hi Adem,
>
> The CMakeLists.txt needs to be updated. The link_libraries command is
> deprecated in favor of target_link_libraries. This should come after
> the add_executable call. More work may be required.
>
> Thanks,
> Matt
>
> On Fri, Nov 8, 2013 at 10:43 AM, Adem breckon <adem.breckon at gmail.com>
> wrote:
> > Hi
> >
> > I want to run QtITK ( taken from InsightApplications) as I want to do a
> Qt
> > based Gui for my itk application.
> >
> > I used the following CMakeLists file:
> >
> > PROJECT(myProject)
> >
> >
> >
> > FIND_PACKAGE ( ITK)
> >
> > IF ( ITK_FOUND)
> >
> > INCLUDE( ${USE_ITK_FILE} )
> >
> > ENDIF( ITK_FOUND)
> >
> >
> >
> >
> >
> > # Find QT
> >
> > FIND_PACKAGE( Qt4 REQUIRED )
> >
> > #INCLUDE( ${QT_USE_FILE} )
> >
> >
> >
> > INCLUDE_DIRECTORIES(
> >
> > ${QT_INCLUDES}
> >
> > ${QT_INCLUDE_DIR}
> >
> > ${QT_QTGUI_INCLUDE_DIR}
> >
> > ${QT_QTCORE_INCLUDE_DIR}
> >
> > ${CMAKE_CURRENT_BINARY_DIR}
> >
> > ${CMAKE_CURRENT_SOURCE_DIR}
> >
> > )
> >
> >
> >
> >
> >
> > LINK_LIBRARIES (QtITK
> >
> > ${ITK_LIBRARIES}
> >
> > ${QT_LIBRARIES}
> >
> > ${QT_QTCORE_LIBRARY}
> >
> > ${QT_QTGUI_LIBRARY}
> >
> > )
> >
> >
> >
> >
> >
> > SET( QtITK.cpp itkQtProgressBar.cxx qtITK.cxx)
> >
> >
> >
> > SET( QtITK_MOC_SRCS itkQtAdaptor.h itkQtLightIndicator.h)
> >
> >
> >
> > #IF(QT_WRAP_CPP)
> >
> > # QT_WRAP_CPP(QtITK QtITK_SRCS QtITK_MOC_SRCS)
> >
> > #ENDIF(QT_WRAP_CPP
> >
> >
> >
> > ADD_EXECUTABLE( QtITK QtITK.cpp)
> >
> >
> >
> > I successfully configured it using cmake and when I try to build the
> > solution using VS 2008 I got the following link errors:
> >
> >
> >
> > Warning 1 warning C4996: 'std::copy': Function
> > call with parameters that may be unsafe - this call relies on the caller
> to
> > check that the passed values are correct. To disable this warning, use
> > -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++
> > 'Checked Iterators'
> >
> c:\tools\itk_4.4.2\itk_4.4.2\modules\io\imagebase\include\itkImageFileReader.hxx
> > 439 QtITK
> >
> > Warning 2 warning C4996: 'std::copy': Function
> > call with parameters that may be unsafe - this call relies on the caller
> to
> > check that the passed values are correct. To disable this warning, use
> > -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++
> > 'Checked Iterators'
> >
> c:\tools\itk_4.4.2\itk_4.4.2\modules\core\common\include\itkImportImageContainer.hxx
> > 72 QtITK
> >
> > Error 3 error LNK2019: unresolved external symbol
> "public:
> > void __thiscall itk::QtProgressBar::Observe(class itk::Object *)"
> > (?Observe at QtProgressBar@itk@@QAEXPAVObject at 2@@Z) referenced in function
> > _main QtITK.obj QtITK
> >
> > Error 4 error LNK2019: unresolved external symbol
> "public:
> > __thiscall itk::QtProgressBar::QtProgressBar(class QWidget *)"
> > (??0QtProgressBar at itk@@QAE at PAVQWidget@@@Z) referenced in function _main
> > QtITK.obj QtITK
> >
> > Error 5 error LNK2001: unresolved external symbol
> "public:
> > virtual struct QMetaObject const * __thiscall
> > itk::QtTranslator::metaObject(void)const "
> > (?metaObject at QtTranslator@itk@@UBEPBUQMetaObject@@XZ) QtITK.obj
> > QtITK
> >
> > Error 6 error LNK2001: unresolved external symbol
> "public:
> > virtual void * __thiscall itk::QtTranslator::qt_metacast(char const *)"
> > (?qt_metacast at QtTranslator@itk@@UAEPAXPBD at Z) QtITK.obj
> > QtITK
> >
> > Error 7 error LNK2001: unresolved external symbol
> "public:
> > virtual int __thiscall itk::QtTranslator::qt_metacall(enum
> > QMetaObject::Call,int,void * *)"
> > (?qt_metacall at QtTranslator@itk@@UAEHW4Call at QMetaObject@@HPAPAX at Z)
> > QtITK.obj QtITK
> >
> > Error 8 error LNK2019: unresolved external symbol
> > "protected: void __thiscall itk::QtTranslator::Signal(void)"
> > (?Signal at QtTranslator@itk@@IAEXXZ) referenced in function "public: void
> > __thiscall itk::QtSignalAdaptor::EmitSignal(void)"
> > (?EmitSignal at QtSignalAdaptor@itk@@QAEXXZ) QtITK.obj
> > QtITK
> >
> > Error 9 error LNK2001: unresolved external symbol
> "public:
> > virtual struct QMetaObject const * __thiscall
> > itk::QtLightIndicator::metaObject(void)const "
> > (?metaObject at QtLightIndicator@itk@@UBEPBUQMetaObject@@XZ)
> > QtITK.obj QtITK
> >
> > Error 10 error LNK2001: unresolved external symbol
> "public:
> > virtual void * __thiscall itk::QtLightIndicator::qt_metacast(char const
> *)"
> > (?qt_metacast at QtLightIndicator@itk@@UAEPAXPBD at Z) QtITK.obj
> > QtITK
> >
> > Error 11 error LNK2001: unresolved external symbol
> "public:
> > virtual int __thiscall itk::QtLightIndicator::qt_metacall(enum
> > QMetaObject::Call,int,void * *)"
> > (?qt_metacall at QtLightIndicator@itk@@UAEHW4Call at QMetaObject@@HPAPAX at Z)
> > QtITK.obj QtITK
> >
> > Error 12 fatal error LNK1120: 9 unresolved externals
> > C:\MyCodes\QT_GUI5\Bin\Debug\QtITK.exe QtITK
> >
> >
> >
> > Of course I have putt all the files needed in my bin directory:
> > itkQtProgressBar.cxx, itkQtProgressBar.h itkQtAdaptor.h,
> > itkQtLightIndicator.h
> >
> >
> >
> > but still got this linking problem. I used qt4.8.5 and itk 4.4.2
> version,
> > Cmake (2.8.11.2), VS. 2008.
> >
> > I am using QtITK from InsightApplications-4.4.0.
> >
> >
> >
> > I searched in itk mailing list and I found two messages asking the same
> > question
> >
> > in http://www.itk.org/pipermail/insight-users/2004-July/009627.html
> >
> > they suggest that CMake not wrapping cpp for Qt.
> >
> > As you can see in my CMakeLists file, I already comment out that but
> still
> > having the same errors.
> >
> >
> >
> > In http://www.itk.org/pipermail/insight-users/2005-November/015684.html
> >
> > The author said that moc has not run properly on the appropriate headers
> > (itkQtAdaptor.h, itkQtLightIndicator.h) so he has done this manually and
> the
> > problem is resolved.
> >
> >
> >
> > I don’t really know the meaning of that and how to do it.
> >
> >
> >
> > Could you please help as I am really stack in using QT with itk. No
> > application is running for me. I have already posted my problem with
> > QtImageViewer and I still waiting or help.
> >
> > Does anyone have a working application wusing itk and QT…please help.
> >
> > Adem.
> >
> >
> > _____________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Kitware offers ITK Training Courses, for more information visit:
> > http://www.kitware.com/products/protraining.php
> >
> > 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
> >
> > _______________________________________________
> > Community mailing list
> > Community at itk.org
> > http://public.kitware.com/cgi-bin/mailman/listinfo/community
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20131108/4f6fe6cf/attachment.htm>
More information about the Insight-users
mailing list