MAKE_KDEFX_LIB

Paulo Jorge Guedes Paulo.Guedes at artelecom.pt
Tue Apr 18 11:55:24 CEST 2006


> -----Original Message-----
> From: Paulo Jorge Guedes [mailto:Paulo.Guedes at artelecom.pt]
> Sent: segunda-feira, 17 de Abril de 2006 20:15
> To: kde-buildsystem at kde.org
> Subject: RE: MAKE_KDEFX_LIB
> 
> > -----Original Message-----
> > From: Paulo Jorge Guedes [mailto:Paulo.Guedes at artelecom.pt]
> > Sent: segunda-feira, 17 de Abril de 2006 19:35
> > To: kde-buildsystem at kde.org
> > Subject: MAKE_KDEFX_LIB
> >
> > Hi,
> >
> > Currently MAKE_KDEFX_LIB is not being defined, which causes linkage
> > errors in kstyles:
> >
> > #ifndef KDEFX_EXPORT
> > # ifdef MAKE_KDEFX_LIB
> > #  define KDEFX_EXPORT  KDE_EXPORT
> > # else
> > #  define KDEFX_EXPORT KDE_IMPORT
> > # endif
> > #endif
> >
> > Would this be a correct fix into kdelibs/CMakeLists.txt?
> >
> > -add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS}
> > -DHAVE_CONFIG_H=1)
> > +add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS}
> -DHAVE_CONFIG_H=1
> > -DMAKE_KDEFX_LIB)
> 
> Obviously not :)
> 
> This defines are generated into flags.make and the one in question is
> indeed in the kdefx.dir.
> Don't know why it doesn't work... the above fixes it (although the
wrong
> fix).

BTW, the error output is the following:

LINK : ..\..\bin\keramik.dll not found or not built by the last
incremental link
; performing full link
   Creating library ..\..\bin\keramik.lib and object
..\..\bin\keramik.exp
keramik.obj : error LNK2019: unresolved external symbol
"__declspec(dllimport) p
ublic: static struct KStyle::DoubleButtonOption * __cdecl
KStyle::OptionBase<str
uct KStyle::DoubleButtonOption,struct
KStyle::Option>::defaultOption(void)" (__i
mp_?defaultOption@?$OptionBase at UDoubleButtonOption@KStyle@@UOption at 2@@KS
tyle@@SA
PAUDoubleButtonOption at 2@XZ) referenced in function "protected: static
struct KSt
yle::DoubleButtonOption const * __cdecl KStyle::extractOption<struct
KStyle::Dou
bleButtonOption const *>(struct KStyle::Option *)"
(??$extractOption at PBUDoubleBu
ttonOption at KStyle@@@KStyle@@KAPBUDoubleButtonOption at 0@PAUOption at 0@@Z)
..\..\bin\keramik.dll : fatal error LNK1120: 1 unresolved externals

As you can see, __declspec(dllimport) is being used because
MAKE_KDEFX_LIB is not defined.

This only happens with MSVC.

Paulo


More information about the Kde-buildsystem mailing list