[Insight-users] Qt with Cmake linking problem

Nicolas itk at fete.ch
Wed Mar 7 11:43:53 EST 2007


Yes, sorry, I mixed in my mind both techniques (QT4_WRAP_CPP or
q4_automoc+#include *.moc).
Using only QT4_Wrap_CPP it works, it should work too with the second manner,
i'll try it later.
Thanks !

--
Nicolas FÊTE, PhD student biotech
EPFL Computer Science Engineer
Ecole Polytechnique Fédérale de Lausanne
Faculté des Sciences de la Vie
Laboratoire de Dynamique des Cellules Souches
Bâtiment AAB
Station 15
CH-1015 Lausanne
Tél:+41 21 693 16 33
Fax:+41 21 693 16 30
HomePage: http://barrandon.eu, http://cellules-souches.eu, 
http://stem-cells.ch, http://stemcells.ch
----- Original Message ----- 
From: "Mike Jackson" <imikejackson at gmail.com>
To: "Nicolas" <itk at fete.ch>
Cc: <qt-interest at trolltech.com>; <insight-users at itk.org>
Sent: Wednesday, March 07, 2007 2:59 PM
Subject: Re: [Insight-users] Qt with Cmake linking problem


>I have a Qt/ITK app that compiles fine. Here are the differences:
>
> In your file you have the following:
> qt4_automoc(${SOURCES_H})
> I have:
> QT4_WRAP_CPP( MOC_SOURCES ${SOURCES_H} )
>
> I also have:
> #-- Add the Defs for Qt.
> ADD_DEFINITIONS(-DQT_GUI_LIBS -DQT_CORE_LIB)
>
> SET_SOURCE_FILES_PROPERTIES(${QSERIES_TO_VOLUME_QT_SRCS} PROPERTIES 
> OBJECT_DEPENDS "${QSERIES_TO_VOLUME_UI_HDRS}")
>
> IF(WIN32)
> SET(GUI_TYPE WIN32)
> ADD_DEFINITIONS(-DNODEFAULTLIB:library)
> SET (${QT_LIBRARIES} qtmain ${QT_LIBRARIES})
> ENDIF(WIN32)
>
>
> Some of this is out of context. If you want my entire CMakeLists.txt  file 
> let me know.
>
>
> -- 
> Mike Jackson   Senior Research Engineer
> Innovative Management & Technology Services
>
>
> On Mar 7, 2007, at 7:24 AM, Nicolas wrote:
>
>> Hello everybody,
>>    I'm actually trying to compile a QT application using a .ui with 
>> Cmake. The application works using qmake but I have to use CMake  beause 
>> I'm using ITK too.
>> I still have problems with the linking phase (error listed below).
>> Does anyone have an idea what is missing in my CmakeLists.txt ?
>> Thanks a lot in advance ! nico
>> ___________________________________________
>> PROJECT(browserPileImagesStandalone)
>> cmake_minimum_required(VERSION 2.4.0)
>>
>> #IF( BUILD_OUTSIDE_INSIGHT_APPLICATIONS )
>>  FIND_PACKAGE(ITK REQUIRED)
>>  IF(ITK_FOUND)
>>    INCLUDE(${ITK_USE_FILE})
>>  ELSE(ITK_FOUND)
>>    MESSAGE(FATAL_ERROR
>>            "Cannot build InsightApplications without ITK.  Please  set 
>> ITK_DIR.")
>>  ENDIF(ITK_FOUND)
>> #ENDIF( BUILD_OUTSIDE_INSIGHT_APPLICATIONS )
>>
>> SET(SOURCES_CPP
>> ../code/main.cpp
>> ../code/browserPileImages.cpp)
>> MESSAGE( STATUS ${SOURCES_CPP} )
>>
>> SET(SOURCES_H
>> ../code/browserPileImages.h)
>> MESSAGE( STATUS ${SOURCES_H} )
>>
>> SET(SOURCES_UI
>> ../code/browserPileImages.ui)
>> MESSAGE( STATUS ${SOURCES_UI} )
>>
>> # Find QT4
>> # attention a la casse de Qt4 !!
>> FIND_PACKAGE(Qt4 REQUIRED)
>>
>> include(${QT_USE_FILE})
>>
>> # execute uic sur les fichier .ui -> generation des .h associes
>> # ne pas oublier de rajouter les .h generes a add_exectuable
>> QT4_WRAP_UI(SOURCES_UI_H ${SOURCES_UI})
>>
>> # pour la macro Q_OBJECT..
>> qt4_automoc(${SOURCES_H})
>>
>> # pour trouver le ui_h
>> INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
>>
>> ADD_EXECUTABLE(browserPileImagesStandalone ${SOURCES_CPP} $ {SOURCES_H} 
>> ${SOURCES_UI_H})
>>
>> TARGET_LINK_LIBRARIES(browserPileImagesStandalone ${QT_LIBRARIES} )
>> ___________________________________________
>>
>> browserPileImages.obj : error LNK2019: unresolved external symbol 
>> "public: static struct QMetaObject const 
>> BrowserPileImages::staticMetaObject" (? 
>> staticMetaObject at BrowserPileImages@@2UQMetaObject@@B) referenced in 
>> function "public: static class QString __cdecl BrowserPileImages::tr 
>> (char const *,char const *)" (?tr at BrowserPileImages@@SA? 
>> AVQString@@PEBD0 at Z)
>> 1>browserPileImages.obj : error LNK2001: unresolved external symbol 
>> "public: virtual struct QMetaObject const * __cdecl 
>> BrowserPileImages::metaObject(void)const " (? 
>> metaObject at BrowserPileImages@@UEBAPEBUQMetaObject@@XZ)
>>
>> 1>browserPileImages.obj : error LNK2001: unresolved external symbol 
>> "public: virtual void * __cdecl BrowserPileImages::qt_metacast(char 
>> const *)" (?qt_metacast at BrowserPileImages@@UEAAPEAXPEBD at Z)
>>
>> 1>browserPileImages.obj : error LNK2001: unresolved external symbol 
>> "public: virtual int __cdecl BrowserPileImages::qt_metacall(enum 
>> QMetaObject::Call,int,void * *)" (? 
>> qt_metacall at BrowserPileImages@@UEAAHW4Call at QMetaObject@@HPEAPEAX at Z)
>>
>> 1>Release\browserPileImagesStandalone.exe : fatal error LNK1120: 4 
>> unresolved externals
>>
>>
>>
>> --
>> Nicolas FETE, PhD student biotech
>> EPFL Computer Science Engineer
>> Ecole Polytechnique Federale de Lausanne
>> Faculte des Sciences de la Vie
>> Laboratoire de Dynamique des Cellules Souches
>> Batiment AAB
>> Station 15
>> CH-1015 Lausanne
>> Tel:+41 21 693 16 33
>> Fax:+41 21 693 16 30
>> HomePage (under construction): http://ldcs.epfl.ch
>> _______________________________________________
>> 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