kdelibs compile error

Ralf Habacker ralf.habacker at freenet.de
Fri Aug 8 10:56:41 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.
> 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).
>   
I found out that in
void cmComputeLinkInformation::AddItem(std::string const& item, 
cmTarget* tgt)

the debug and optimized flags are added as regular items which looks 
wrong - in the opposite the general items are removed before

 >    cmake.exe!cmComputeLinkInformation::AddItem(const 
std::basic_string<char,std::char_traits<char>,std::allocator<char> > & 
item="kdecore", cmTarget * tgt=0x0268afcc)  Line 575    C++
     cmake.exe!cmComputeLinkInformation::Compute()  Line 528    C++
     cmake.exe!cmTarget::GetLinkInformation(const char * 
config=0x01fe1a7c)  Line 3590 + 0xe bytes    C++
     
cmake.exe!cmMakefileTargetGenerator::AppendTargetDepends(std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> 
 >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> 
 > > > & 
depends=[2]("kdecore/tests/CMakeFiles/ksavefiletest.dir/ksavefiletest_automoc.obj",...,...))  
Line 1475 + 0xf bytes    C++
     
cmake.exe!cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool 
relink=false)  Line 108    C++
     cmake.exe!cmMakefileExecutableTargetGenerator::WriteRuleFiles()  
Line 62 + 0x11 bytes    C++
     cmake.exe!cmLocalUnixMakefileGenerator3::Generate()  Line 137 + 0xf 
bytes    C++
     cmake.exe!cmGlobalGenerator::Generate()  Line 880 + 0x2c bytes    C++
     cmake.exe!cmGlobalUnixMakefileGenerator3::Generate()  Line 143    C++
     cmake.exe!cmake::Generate()  Line 2325 + 0x1b bytes    C++
     cmake.exe!cmake::Run(const 
std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> 
 >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> 
 > > > & 
args=[3]("E:\daten\kde\emerge-msvc-root\bin\cmake.exe","-HC:\downloads\kdesvn\trunk\KDE\kdelibs",...,...), 
bool noconfigure=false)  Line 2305 + 0x8 bytes    C++
     cmake.exe!do_cmake(int ac=3, char * * av=0x017d6088)  Line 482 + 
0x19 bytes    C++
     cmake.exe!main(int ac=3, char * * av=0x017d6088)  Line 295 + 0xd 
bytes    C++
     cmake.exe!__tmainCRTStartup()  Line 586 + 0x19 bytes    C
     cmake.exe!mainCRTStartup()  Line 403    C
     kernel32.dll!7c816fd7()    
     [Frames below may be incorrect and/or missing, no symbols loaded 
for kernel32.dll]   

BTW: cmake 2.6.x does have a switch for printing out depends debug 
informations.

################# set KDE specific information #################
set(CMAKE_LINK_DEPENDS_DEBUG_MODE 1)

Ralf



More information about the Kde-windows mailing list