[Qt-interest] Trying to use ICO icons in a dll linked to static QT 4.5.3

Yuvraaj Kelkar yuvraaj at gmail.com
Thu Oct 29 15:11:05 CET 2009


Hi all,

I have created a DLL that links statically to QT 4.5.3
This DLL has 3 .ico files compiled into it using a qrc.
I have already compiled QT statically.

Initializing the QIcon does not show any errors, enumerating the 
resource contents using QDir shows that my ico files exist and are 
accessible.
When I actually showing those icons - in my case in the system tray 
using QSystemTrayIcon - no icon is displayed.

QSystemTrayIcon itself works - I can click, right click, hover over the 
"blank space" created by the class in the tray. It just cannot show an icon.

I debug stepped into the QSystemTrayIcon::setIcon to see what the 
problem was. Turns out that there is no ICO pixmap handler.
I guess that this is because the ico plugin has not been loaded / 
compiled into my dll.

So I tried loading the qico plugin as explained in:
http://doc.trolltech.com/4.5/qtplugin.html#Q_IMPORT_PLUGIN
http://doc.trolltech.com/4.5/plugins-howto.html#static-plugins

In my .pro:
static {
     QTPLUGIN += qico
     DEFINES += STATIC
     message("Static build")
}

and in my source file:
#ifdef STATIC
#include <QtPlugin>
Q_IMPORT_PLUGIN(qico)
#endif

With this I get link errors:
         link /LIBPATH:"c:\qt\lib" /NOLOGO /DEBUG /DLL /MANIFEST 
/MANIFESTFILE:"debug\zcmn.intermediate.manifest" /OUT:debug\mydll.dll 
@C:\DOCUME~1\Uv\LOCALS~1\Temp\nm2696.tmp
LINK : fatal error LNK1104: cannot open file 'qicod.lib'

I looked into my qt folder for a lib file called qico.lib and qicod.lib: 
Neither was present.
I looked into \qt\src\plugins\imageformats\ico\tmp\obj\ and found the 
debug_static and release_static folders with qicohandler.obj compiled in 
both.

This is the command I used to configure QT to build statically:
.\configure.exe -debug-and-release -static -no-fast -no-exceptions 
-accessibility -no-stl -plugin-sql-sqlite -no-qt3support -no-opengl 
-platform win32-msvc2008 -graphicssystem raster -no-incredibuild-xge 
-plugin-manifests -qmake -process -no-rtti -3dnow -sse -no-openssl -dbus 
-no-phonon -no-phonon-backend -no-webkit -no-scripttools -arch windows 
-no-style-motif -no-style-cde -no-style-cleanlooks -no-style-plastique 
-nomake examples -nomake demos

Followed by:
nmake sub-src

I've Googled for the last one week looking for an answer. Any help would 
be appreciated. Anything - even moral support!

Thanks,
Uv




More information about the Qt-interest-old mailing list