On 23.03.09 08:16:35, Stephen Collyer wrote:
> I'm trying to build a fully static exe on Opensuse 11.1 against a static
> build of Qt 4.5, and
> I'm trying to link against a static QMySQL plugin.
>
> I'm getting a link error when I do so, and I suspect it's because I'm not
> telling LINK_LIBRARIES how
> to link against the static plugin.
>
> /usr/bin/c++ -O3 -DNDEBUG -fPIC
> CMakeFiles/file_transfer_scheduler_exe.dir/file_transfer_scheduler.o -o
> file_transfer_scheduler_exe -rdynamic
> -L/usr/local/Trolltech/Qt-4.5.0-static/lib ../lib/libFileTransferScheduler.a
> ../lib/libSSHPrivateKey.a ../lib/libIPCListener.a ../lib/libComms.a
> ../lib/libExceptions.a ../lib/libSupport.a
> /usr/local/Trolltech/Qt-4.5.0-static/lib/libQtGui.a -lpng -lSM -lICE
> -lXrender -lfreetype -lfontconfig -lXext -lX11 -lm
> /usr/local/Trolltech/Qt-4.5.0-static/lib/libQtXml.a
> /usr/local/Trolltech/Qt-4.5.0-static/lib/libQtSql.a
> /usr/local/Trolltech/Qt-4.5.0-static/lib/libQtNetwork.a -lssl
> /usr/local/Trolltech/Qt-4.5.0-static/lib/libQtCore.a -lz -lgthread-2.0
> -lglib-2.0 -lrt -lpthread -ldl ../lib/libClientCertificate.a
> ../lib/libServer.a ../lib/libUIObject.a ../lib/libTimedMessages.a
> ../lib/libTransferrers.a ../plugins/libcurlPlugin.a ../lib/libHTTP.a -lcurl
> ../lib/libCommonProperties.a ../lib/libRunnable.a ../lib/libComms.a
> ../lib/libPersistence.a ../lib/libRunQuery.a ../lib/libSupport.a
> ../lib/libLogger.a ../lib/libExceptions.a ../lib/libAgentSettings.a
> /usr/local/Trolltech/Qt-4.5.0-static/lib/libQtGui.a -lpng -lSM -lICE
> -lXrender -lfreetype -lfontconfig -lXext -lX11 -lm
> /usr/local/Trolltech/Qt-4.5.0-static/lib/libQtXml.a
> /usr/local/Trolltech/Qt-4.5.0-static/lib/libQtSql.a
> /usr/local/Trolltech/Qt-4.5.0-static/lib/libQtNetwork.a -lssl
> /usr/local/Trolltech/Qt-4.5.0-static/lib/libQtCore.a -lz -lgthread-2.0
> -lglib-2.0 -lrt -lpthread -ldl
> -Wl,-rpath,/usr/local/Trolltech/Qt-4.5.0-static/lib
> CMakeFiles/file_transfer_scheduler_exe.dir/file_transfer_scheduler.o: In
> function `global constructors keyed to
> _Z15log_start_statetRK7QStringS1_S1_S1_':
> file_transfer_scheduler.cpp:(.text+0x91): undefined reference to
> `qt_plugin_instance_qsqlmysql()'
>
> Can anyone suggest what I'm screwing up here ? I'm guessing that I need to
> do something different
> than merely link against ${QT_LIBRARIES} but I'm not sure what.
Are you sure yout Qt4.5 has the mysql plugin built in? There's only two
cases for the plugins (AFAIK):
a) real plugins as shared objects in the plugins dir
b) built directly into the static Qt libs
So obviously in case a) you don't need to link against the mysql-plugin,
because Qt will load it itself during runtime and in the second case it
should be part of the QtSql library.
Can you show the relevant cpp file and cmake code?
Andreas
--
You are fighting for survival in your own sweet and gentle way.
_______________________________________________
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