Multiple gtk installations

Mike Wey mike-wey at example.com
Thu Nov 7 11:28:58 PST 2013


On 11/07/2013 06:16 PM, Benjamin Thaut wrote:
> Am 07.11.2013 16:58, schrieb Alexandr Druzhinin:
>> 07.11.2013 22:53, Alexandr Druzhinin пишет:
>>> 07.11.2013 22:12, Benjamin Thaut пишет:
>>>> Am 07.11.2013 15:58, schrieb Jacob Carlborg:
>>>>> On 2013-11-07 11:45, Benjamin Thaut wrote:
>>>>>> I'm wondering what's the correct way to handle multiple gtk
>>>>>> installations on windows? When developing I most likely will have at
>>>>>> least two at all times, the 32-bit version and the 64-bit version.
>>>>>> When they are both added to the PATH they will obviously conflict.
>>>>>>
>>>>>> Googeling this issue doesn't help much because of the double
>>>>>> meaning of
>>>>>> "Windows".
>>>>>
>>>>> One way to solve it would be to have the Gtk dll in the same directory
>>>>> as the executable. Windows will look there first, if I recall
>>>>> correctly.
>>>>>
>>>>
>>>> Woudln't it be necessary to copy the other gtk assets there too? Like
>>>> the fonts etc?
>>>>
>>> I have multiple installations and handle them using .cmd files that set
>>> path for specific installation. I like command line interface. :)
>> So if I have gtk binary installed to two path: c:\gtk32 and c:\gtk64 I
>> do:
>> path=c:\gtk32:%path%
>> for using gtk32 installation and do:
>> path=c:\gtk64:%path%
>> for using gtk64. But now I use linux and may forget about some details.
>> I remember that dll hell very possible but it's not the problem if set
>> path correctly.
>
> I'm wondering how other gtk apps do this. Because this must somehow be
> possible without the user modifing the PATH. Pidgin for example installs
> the gtk runtime and then somehow magically always uses this runtime, no
> matter whats inside the path.
>
> Kind Regards
> Benjamin Thaut

I don't know how other apps do this, but afaik giving each app there own 
private copy can still cause problems.
If a dll with the same name as the one you are trying to load is already 
in memory, Windows will use the the one already in memory.
When the version thats in memory is to old for the app you are starting 
it will crash because of the version mismatch.

-- 
Mike Wey


More information about the Digitalmars-d-learn mailing list