[Qt-interest] Hi Trolls, I have a problem of cohabitation between Qt 4.3.4 and Qt 4.7
Kai Koehne
kai.koehne at nokia.com
Wed Sep 29 12:55:30 CEST 2010
On 9/29/2010 12:41 PM, ext Fabio Giovagnini wrote:
> Thanks a lot for your answer;
> Does your suggesiton allow me to avoid modifing teh system path variable?
No, you shouldn't motify the PATH variable, nor should you copy any Qt
directories to System directories. That directly leads to the infamous
dll hell.
> I need the modifiy it I will have the the same problem, or not?
According to e.g.
http://msdn.microsoft.com/en-us/library/7d83bc18%28VS.71%29.aspx
the dlls in the same directory as the .exe will always take precedence
over anything in %PATH%.
Actually via manifests you can even put the dlls in other places, but
that's really cumbersome. If you stick with the setup I described
everything should work.
Regards
Kai
PS: If you experience problems like this depends.exe is invaluable:
http://www.dependencywalker.com/
> Thanks again and many regards
>
>
> In data mercoledì 29 settembre 2010 12:04:03, Kai Koehne ha scritto:
> :> On 9/29/2010 10:55 AM, ext Fabio Giovagnini wrote:
>>> Hi All, I try to explain better.
>>>
>>> I distribute a tools in source version abd binary version together.
>>> the binary version has the following folders' structure:
>>> <install_DIR>\
>>> tool
>>> plugins
>>> qtlib
>>>
>>> and the nullsoft installer add to the system path<install_DIR>\qtlib
>>> to make the tool runnable
>>
>> That seems to be a dump idea. What you can do putting the needed Qt
>> .dlls and plugin directories in the same directory as your app.exe .
>> This way you don't have to set any system path. E.g.
>>
>> <install_DIR>\tool.exe
>> <install_DIR>\QtCore4.dll
>> <install_DIR>\imageformats\qjpeg4.dll
>>
>> Check out e.g. how creator does this.
>>
>> Regards
>>
>> Kai
>>
>>> Well, now I have a version based on qt-4.3.4 and another version of the
>>> same tool based on qt-4.7
>>>
>>> If I install before teh qt-4.3.4 based one, and later the qt-4.7 based
>>> one ; the last doesn't work telling me the application cannot find a
>>> function in QtCore4.dll
>>>
>>> This is right becouse I have first in the PATH the folder containing the
>>> qt-4.3.4 version of QtCore4.dll and after the qt-4.7 version of
>>> QtCore4.dll with the same name. So the dynamic linker loads teh first
>>> one ignoring the second one being the right one.
>>>
>>> How can I approach this problem.
>>>
>>> Where could I study deeper about qt version cohabitation?
>>>
>>> Thanks a lot
>
--
Kai Koehne
Software Engineer
Nokia, Qt Development Frameworks
Nokia gate5 GmbH
Firmensitz: Invalidenstr. 117, 10115 Berlin, Germany
Registergericht: Amtsgericht Charlottenburg, Berlin: HRB 106443 B
Umsatzsteueridentifikationsnummer: DE 812 845 193
Geschäftsführer: Dr. Michael Halbherr, Karim Tähtivuori
More information about the Qt-interest-old
mailing list