[CMake] Problems with CMake and static Qt plugins
Michael Hertling
mhertling at online.de
Sat Mar 3 18:07:18 EST 2012
On 03/02/2012 02:48 PM, NoRulez wrote:
> Hello,
>
> I use Qt 4.8.0 from the QtSDK and Iwant to generate a static qt plugin.
> In my main.cpp I have the following:
>
>
> #include<QApplication>
> #include<QtPlugin>
>
> Q_IMPORT_PLUGIN(Local)
>
> intmain(intargc,char*argv[]){
> QApplicationapp(argc,argv);
>
> .
> .
> .
> return app.exec();
>
> }
>
> The corresponding CMakeLists.txt for the LocalPlugin looks like the following:
>
> SET(LOCALPLUGIN_HEADERS
>
> LocalPlugin.h
>
> )
>
> SET(LOCALPLUGIN_SOURCES
>
> LocalPlugin.cpp
>
> )
>
>
> SET(QT_USE_QTGUITRUE)
> SET(QT_USE_QTPLUGINTRUE)
>
> QT4_AUTOMOC(${LOCALPLUGIN_SOURCES})
> QT4_WRAP_CPP(LOCALPLUGIN_MOC${LOCALPLUGIN_HEADERS})
>
> ADD_LIBRARY(Local STATIC ${LOCALPLUGIN_HEADERS} ${LOCALPLUGIN_SOURCES} ${LOCALPLUGIN_MOC})
>
> TARGET_LINK_LIBRARIES(Local ${QT_LIBRARIES})
>
>
> The corresponding CMakeLists.txt for the main app looks like the following:
>
> SET(QT_USE_QTMAINTRUE)
>
> SET(QT_USE_QTGUI TRUE)
>
> ADD_EXECUTABLE(MyApp WIN32 ${APP_SOURCES} ${APP_RCC} MyApp.rc)
> TARGET_LINK_LIBRARIES(MyAppLocal ${QT_LIBRARIES})
>
> When I compile it I get the following error:
> In function `StaticLocalPluginInstance': undefined reference to `qt_plugin_instance_Local()'
>
> Please, could anybody help me to get it working?
Did you INCLUDE(${QT_USE_FILE}) in the correct place, i.e. after
setting the QT_USE_QT* variables? QT_LIBRARIES is populated in
that file.
Moreover, the lines
SET(QT_USE_QTGUITRUE)
SET(QT_USE_QTMAINTRUE)
SET(QT_USE_QTPLUGINTRUE)
QT4_WRAP_CPP(LOCALPLUGIN_MOC${LOCALPLUGIN_HEADERS})
are obviously missing blanks - just typos in your report?
Regards,
Michael
More information about the CMake
mailing list