kdelibs compile error

Alexander Neundorf neundorf at kde.org
Tue Aug 5 01:15:28 CEST 2008


On Monday 04 August 2008, Ralf Habacker wrote:
> Patrick Spendrin schrieb:
> > Ralf Habacker schrieb:
> >> Hi,
> >>
> >> 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
> >> optimized;E:/daten/kde/emerge-msvc-root/lib/kdewin32.lib;debug;E:/daten/
> >>kde/emerge-msvc-root/lib/kdewin32d.lib from the CMakeCache.txt are
> >> evaluated into
> >>
> >> optimized.lib
> >> E:\daten\kde\emerge-msvc-root\lib\kdewin32.lib
> >> debug.lib
> >> E:\daten\kde\emerge-msvc-root\lib\kdewin32d.lib
> >>
> >>
> >> 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
> >> type.
> >>
> >> 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
> >> release.
> >
> > 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
------------
cmTargetLinkLibrariesCommand::InitialPass().
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 ?
--------------
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 ?

Alex





More information about the Kde-windows mailing list