kdelibs compile error
ralf.habacker at freenet.de
Wed Aug 6 00:08:18 CEST 2008
Alexander Neundorf schrieb:
> On Monday 04 August 2008, Ralf Habacker wrote:
>> Patrick Spendrin schrieb:
>>> Ralf Habacker schrieb:
>>>> with recent svn source code (tested with cmake 2.6.0 and 2.6.1) I got
>>>> linker errors:
>>>> Scanning dependencies of target kde4-config
>>>> Linking CXX executable ..\bin\kde4-config.exe
>>>> LINK : fatal error LNK1104: cannot open file 'optimized.lib'
>>>> LINK Pass 1 failed. with 2
>>>> A look into the related build.cmake shows that the term
>>>> kde/emerge-msvc-root/lib/kdewin32d.lib from the CMakeCache.txt are
>>>> evaluated into
>>>> The optimized.lib and debug.lib are complete wrong here and there should
>>>> only be one real library listed on the link line depending on the build
>>>> Short time ago this does work without any problems. Any hints how to
>>>> solve this problem would be very welcome because it is currently not
>>>> possible to release several important binary packages for the KDE 4.1
>>> Exactly the same happens with the general keyword: it is not correctly
>>> used and thus produces strange errors (trying to link general.lib)-
>> The general keyword works for me with cmake 2.6.0 and 2.6.1
>>> this seems to be a cmake related problem (maybe a buildsystem one as
>>> cmake worked with this before).
>> When I remove the optimized/debug libraries from the related _DEPENDS
>> lines in CMakeCache.txt and add a
>> general;E:/daten/kde/emerge-msvc-root/lib/kdewin32d.lib (for debug
>> builds) then there is no linking error. I assume that there is a problem
>> in the area where cmake parses the _DEPENDS lines.
> We really need to get this fixed.
> It would be cool if you could find out what happens, I didn't have the problem
> yet on my system.
> Which buildtype have you set ? Maybe "DEBUG" ?
> The keywords "general", "optimized" and "debug" are handled in
> If there is a way that TARGET_LINK_LIBRARIES() ends up e.g.
> with "general;kdecore;debug;debug;kdeui;", i.e. two keywords behind each
> other, then this might cause the problem. The question is, can that happen ?
> It shouldn't. Can you find out whether that happens there ?
seems not to be.
> They are also handled in
> cmComputeLinkDepends::AddVarLinkEntries() and cmTarget::GatherDependencies().
> These two functions may have the same issue, i.e. if the arguments they get
> contains two of the keywords in a row it might happen.
> Can check whether that happens ?
In this place there is some magic with compatibility I don't understand
yet. As there seems not to be a debug mode like qmake or autotools have
the only way to find what's going wrong is to add debug prints on
several places to see what happens inside - but this need cmake to be
compiling with mingw would be an option for adding debug prints, but
further debugging is not an option because using command line gdb on
win32 is a night mare.
More information about the Kde-windows