|
Hello, I use Qt 4.8.0 from the QtSDK and I want to generate a static qt plugin. #include <QApplication> #include <QtPlugin> Q_IMPORT_PLUGIN(Local)int main(int argc, char* argv[]) {QApplication app(argc, argv); .} The corresponding CMakeLists.txt for the LocalPlugin looks like the following: SET(LOCALPLUGIN_HEADERS LocalPlugin.h
) SET(LOCALPLUGIN_SOURCES
LocalPlugin.cpp
)SET(QT_USE_QTGUI TRUE) SET(QT_USE_QTPLUGIN TRUE) 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_QTMAIN TRUE) SET(QT_USE_QTGUI TRUE) -- 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 |
|
Thank you,
I added ADD_DEFINITIONS(-DQT_STATICPLUGIN) but the result is the same (same error message) Best Regards Am 02.03.2012 um 14:58 schrieb Thiago Macieira <[hidden email]>: > On sexta-feira, 2 de março de 2012 13.48.03, NoRulez wrote: >> 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? > > I guess you forgot to define QT_STATICPLUGIN. > > -- > Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org > Software Architect - Intel Open Source Technology Center > PGP/GPG: 0x6EF45358; fingerprint: > E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 > _______________________________________________ > Interest mailing list > [hidden email] > http://lists.qt-project.org/mailman/listinfo/interest 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 |
|
In reply to this post by norulez
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 |
|
@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 <[hidden email]>: > 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 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 |
|
Hi, norulez.
With "@Thiago: QT_STATICPLUGIN does the trick ", what do you mean? How and where did you use this? If possible, can you please include both your final plugin and application CMakeLists.txt files? Thanks a lot, -Daniel |
|
dcrespol wrote:
> Hi, norulez. > With "@Thiago: QT_STATICPLUGIN does the trick ", what do you mean? How and > where did you use this? > If possible, can you please include both your final plugin and application > CMakeLists.txt files? It was probably a response to Thiago on the Qt mailing list. Use add_definitions(-DQT_STATICPLUGIN) when building your plugin or set_property(TARGET theplugin APPEND PROPERTY COMPILE_DEFINITIONS QT_STATICPLUGIN ) Thanks, Steve. -- 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 |
Perfect. Now it works. For some reason I was using that line in the application build that links to the plugin. Thanks a lot! -Daniel |
| Powered by Nabble | Edit this page |
