[CMake] Why the ui_header.h can not be found in Qt project when I add a share lib?

Michael Jackson mike.jackson at bluequartz.net
Tue Jan 20 13:21:45 EST 2009


TARGET_LINK_LIBRARIES( gtc GUI  ${QT_LIBRARIES} )

Also BEFORE the FindPackage(Qt4) add the following line:

IF (WIN32)
     SET (QT_USE_QTMAIN TRUE)
ENDIF (WIN32)

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



On Jan 20, 2009, at 1:12 PM, Kermit Mei wrote:

> Clinton Stimpson wrote:
>>
>> How about using ${GUI_UIS} instead of ${SAMPLE_UIS}, which is  
>> undefined.
>>
>> Clint
> Hmm, thank you. I had repired some erros, and the GUI.so can be  
> created.
>
> But the new troubles come:
>
>
> $ make
> [ 20%] Generating ui_gotocelldialog.h
> [ 40%] Generating moc_gotocelldialog.cxx
> Scanning dependencies of target GUI
> [ 60%] Building CXX object gui/CMakeFiles/GUI.dir/gotocelldialog.cpp.o
> [ 80%] Building CXX object gui/CMakeFiles/GUI.dir/ 
> moc_gotocelldialog.cxx.o
> Linking CXX shared library libGUI.so
> [ 80%] Built target GUI
> Scanning dependencies of target gtc
> [100%] Building CXX object CMakeFiles/gtc.dir/main.cpp.o
> Linking CXX executable gtc
> CMakeFiles/gtc.dir/main.cpp.o: In function `main':
> main.cpp:(.text+0x138): undefined reference to  
> `QApplication::QApplication(int&, char**, int)'
> main.cpp:(.text+0x188): undefined reference to `QApplication::exec()'
> main.cpp:(.text+0x195): undefined reference to  
> `QApplication::~QApplication()'
> main.cpp:(.text+0x1ab): undefined reference to  
> `QApplication::~QApplication()'
> gui/libGUI.so: undefined reference to `QLabel::setBuddy(QWidget*)'
> gui/libGUI.so: undefined reference to `QString::free(QString::Data*)'
> gui/libGUI.so: undefined reference to `QWidget::devType() const'
> gui/libGUI.so: undefined reference to `QHBoxLayout::QHBoxLayout()'
> gui/libGUI.so: undefined reference to `QDialog::sizeHint() const'
> gui/libGUI.so: undefined reference to  
> `QWidget::dropEvent(QDropEvent*)'
> gui/libGUI.so: undefined reference to `QWidget::languageChange()'
> gui/libGUI.so: undefined reference to `QWidget::leaveEvent(QEvent*)'
> gui/libGUI.so: undefined reference to  
> `QDialog::showEvent(QShowEvent*)'
> gui/libGUI.so: undefined reference to  
> `QWidget::hideEvent(QHideEvent*)'
> gui/libGUI.so: undefined reference to `QDialog::setVisible(bool)'
> gui/libGUI.so: undefined reference to `vtable for QLayoutItem'
> ……  <snip>  ……
> gui/libGUI.so: undefined reference to `QDialog::reject()'
> collect2: ld returned 1 exit status
> make[2]: *** [gtc] Error 1
> make[1]: *** [CMakeFiles/gtc.dir/all] Error 2
> make: *** [all] Error 2
>
>
>
> And the new CMakeLists of the main.cpp's directory is like this:
>
> CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
> PROJECT( GTC )
>
> FIND_PACKAGE( Qt4 REQUIRED )
>
> INCLUDE( ${QT_USE_FILE} )
>
> ADD_SUBDIRECTORY( gui )
>
> INCLUDE_DIRECTORIES(${GTC_SOURCE_DIR}/gui)
> LINK_DIRECTORIES(${GTC_BINARY_DIR}/gui)
>
> ADD_DEFINITIONS( -Wall )
>
> SET( GTC_SRCS main.cpp )
>
> INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/gui )
> INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR}/gui )
>
>
>
> ADD_EXECUTABLE( gtc ${GTC_SRCS} )
>
> SET(EXECUTABLE_OUT_PATH ${CMAKE_BINARY_DIR})
>
> TARGET_LINK_LIBRARIES( gtc GUI )
>
> What's the matter?
> Thanks again;p
>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake



More information about the CMake mailing list