[CMake] [SOLVED] Win32: DLL fails to find Qt symbols but .so builds in Linux

Stephen Collyer scollyer at netspinner.co.uk
Fri Nov 23 11:54:57 EST 2007


Clinton Stimpson wrote:

> Are you missing a
> TARGET_LINK_LIBRARIES(Comms ${QT_LIBRARIES})
> after your
> ADD_LIBRARY(Comms ....)
> if your Comms dll makes calls to Qt?

Clinton, thanks ****very**** much for that. Yes, that was
essentially the problem. I've now added enough stuff
to the TARGET_LINK_LIBRARIES line to satisfy the
VS linker, and I can build and run the exe on Win32
now, and it's only taken a mere 7 hours to do so :-)

I guess this is one area where cmake can't hide the
differences in linking requirements between Win32 and
Unix.

One other minor point. I had a single class, fully
defined in a header file, which the others #include'd
directly. I had added the Windows _declspec export stuff
to it, but this was a mistake, since it prompted VS to
look for a corresponding .lib file, and consequently
it failed at link time as I wasn't building a library.
To fix this, I merely removed the export spec. completely
from the class, and all was well.

-- 
Regards

Steve Collyer
Netspinner Ltd


More information about the CMake mailing list