[CMake] Problems with CMake and static Qt plugins
norulez at me.com
norulez at me.com
Sun Mar 4 06:53:58 EST 2012
@Michael: This was a copy/paste failure
@Thiago: QT_STATICPLUGIN does the trick
Another mistake from me was to use a different name for Q_IMPORT_PLUGIN and for Q_EXPORT_PLUGIN2.
One more hint, if someone would make a static plugin is to use the QPluginLoader::staticInstances() function.
Thanks to all
Best Regards
NoRulez
Am 04.03.2012 um 00:07 schrieb Michael Hertling <mhertling at online.de>:
> 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
> --
>
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
More information about the CMake
mailing list