kdelibs compile error
Ralf Habacker
ralf.habacker at freenet.de
Thu Aug 7 11:14:36 CEST 2008
Alexander Neundorf schrieb:
> On Wednesday 06 August 2008, Ralf Habacker wrote:
>
>> Ralf Habacker schrieb:
>>
> ...
>
>>> Thanks patrick patch cmake 2.6.1 could not be build with nmake.
>>> Then I added in cmComputeLinkDepends.cxx
>>>
>>> void cmComputeLinkDepends::AddVarLinkEntries(int depender_index,
>>> ...
>>> // Look for entries meant for this configuration.
>>> std::vector<std::string> actual_libs;
>>> cmTarget::LinkLibraryType llt = cmTarget::GENERAL;
>>> bool haveLLT = false;
>>> for(std::vector<std::string>::const_iterator di = deplist.begin();
>>> di != deplist.end(); ++di)
>>> {
>>> + std::cerr << "+++" << *di << "\n";
>>>
>>> ...
>>> }
>>> and after the closing tag of the loop
>>>
>>> for(std::vector<std::string>::const_iterator di =
>>> actual_libs.begin(); di != actual_libs.end(); ++di)
>>> std::cerr << "+-+" << *di;
>>>
>>>
>>>
>>> Then I run
>>>
>>> nmake rebuild_cache
>>>
>>> in kdelibs-build dir but I saw no debug prints neither on the command
>>> line nor the CMakeFiles/CMakeOutput.log nor CMakeFiles/CMakeError.log
>>>
>> Additional note: I added a std::cerr immediatly after main and is was
>> printed when running nmake rebuild_cache. This indicates that nmake
>> rebuild_cache does not regenerate the dependencies, so how to trigger
>> this ?
>>
>
> One would have to check when AddVarLinkEntries() is actually called.
>
AddVarLinkEntries wasn't called when cmak'ing kdelibs
> Or just use the brute force method and add debug output also in
> cmTarget::GatherDependencies() and cmTargetLinkLibrariesCommand::IntialPass()
> (I don't think that this one causes the problem).
>
In cmLocalGenerator.cxx:1544 ff
// Append the link items.
typedef cmComputeLinkInformation::ItemVector ItemVector;
ItemVector const& items = cli.GetItems();
for(ItemVector::const_iterator li = items.begin(); li != items.end();
++li)
{
+ if (li->Value == "optimized.lib" || li->Value == "debug.lib") {
+ std::cerr << "found invalid library " << li->Value;
+ }
the optimized.lib and debug.lib are in the items ItemVector and the
questions is why are there in the list and not filtered by the build
type . I haven't found the place where this happens.
Some notes:
1 - Using RelWithDebInfo results into the same problem.
Ralf
More information about the Kde-windows
mailing list