MSVC build of kdelibs fails

Ralf Habacker ralf.habacker at freenet.de
Mon Dec 24 12:40:18 CET 2007


Christian Ehrlicher schrieb:
> Andreas Pakulat schrieb:
>   
>> On 23.12.07 18:13:52, Andreas Pakulat wrote:
>>     
>>> On 23.12.07 17:46:19, Andreas Pakulat wrote:
>>>       
>>>> On 23.12.07 16:14:08, Christian Ehrlicher wrote:
>>>>         
>>>>> If this does not help you'l have no other chance than build qdbuscpp2xml
>>>>> in debug mode and do some debugging.
>>>>>           
>>>> I guess so...
>>>>         
>>> Hmm, I can't debug, because the app doesn't load at all. The problem
>>> seems to be with dbus-1d.dll from the dbus-package. MSVC tells me the
>>> following:
>>>
>>> LDR: LdrpWalkImportDescriptor() failed to probe
>>> D:\andreas\kde4\bin\dbus-1d.dll for its manifest, ntstatus 0xc0150002
>>>
>>> So it seems that when emerge builds Qt with debug_and_release a debug
>>> qdbuscpp2xml gets installed into the bin/ folder and thus dbus-1d.dll is
>>> used.
>>>       
The question is in which order does qt builds release and debug ?
>>> If I make sure qdbuscpp2xml is built in release mode everything works
>>> fine.
>>>       
>> I restarted a fresh build with emerge about 3.5 hours ago and coming
>> back to the system qdbuscpp2xml still fails to load.
>>
>> Checked with depends and indeed it links to dbus-1d.dll (indirectly via
>> QtDBusd4.dll), and dbus-1d.dll one is said to be having errors.
>>
>> I get the same error when opening just QtDbusd4.dll.
>>
>> Another thing is: When opening the non-debug-QtDBus lib I have a missing
>> MSVCR80.dll, which is "pulled in" by QtXml.dll. That library shows
>> strange dependencies onto dll's in
>> C:\windows\winsxs\x86_microsoft.vc80.crt_<hash>_8.0...._x-www_<hash>\
>> i.e. it links against the MSVCP80.dll in that dir and that one wants the
>> MSVCR80.dll (which is in the same dir). Is that normal? 
>>     
I recognized a similar problem that there a msvcrt80.dll required with 
xmllint too and had not found a solution. :-(
>> Anyway, putting the msvcr80.dll into Windows\system32 or directly into
>> the kde4\bin doesn't help either.
>>     
i guess there is a manifest file missing - depends told me so for 
xmllint.exe.
>> And it gets even stranger, the qdbusxml2cpp program also links against
>> qtdbus4.dll, but that one only has the warning about an unresolved
>> import. And when opening qdbusxml2cpp it also finds the msvcr80.dll in
>> that dir in windows\winsxs.
>>
>> Another difference between the 2 tools is that for qdbuscpp2xml there's
>> no manifest file for the release version, while there is one for the
>> debug version. Manually building the release version of qdbuscpp2xml
>> does create the .manifest file in the obj-output folder and the
>> resulting binary doesn't have any problems when opening in depends. So
>> it seems that there's still some kind of bug inside Qt4.3.3 for building
>> qdbuscpp2xml.exe, as its using the debug-binary instead of the release
>> one, even though the releease rule is the last one executed according to
>> the makefile.
>>     
sure that release qdbuscpp2xml is build last ? 
unfortunally qt does not distinguish debug exe's from release exe's 
which would make it much easier to maintain.
Because to not been influenced by such things, i use different dirs for 
debug and release builds as much as possible.
>> How do I debug this further?
>>
>>     
I suggest to separate relase and debug builds completly.

Ralf





More information about the Kde-windows mailing list