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