finding dmd.conf

Georg Wrede georg.wrede at
Sun Mar 1 09:44:30 PST 2009

Lutger wrote:
> Jesse Phillips wrote:
>> On Fri, 27 Feb 2009 15:54:46 +0100, Lutger wrote:
>>> I'm having some trouble with dmd.conf. I set up a (soft) symbolic link
>>> to the dmdxxxx/bin path version I want to use, but dmd can't find
>>> dmd.conf:
>>> $> which dmd
>>> /home/lutger/code/bin/dmd/bin/dmd
>>> $> dmd main.d
>>> object.d: module object cannot read file 'object.d' $>
>>> /home/lutger/code/bin/dmd/bin/dmd main.d $>
>>> Fully specifying the path works, and putting dmd.conf in /etc also
>>> works, but is less than ideal. This is in bash (Konsole) on OpenSuse
>>> 11.1.
>>> Anybody an idea what I am doing wrong?
>> I'm not sure what you mean by "symbolic link to the dmdxxxx/bin path 
>> version I want..."
>> DMD looks in only 2 places for dmd.conf, the location of the dmd 
>> executable, in your case /home/lutger/code/bin/dmd/bin/, and /etc/
> It also looks in HOME and the current directory.
> I should have explained clearer. I have setup 3 installations of D that I 
> use:
> ~/code/bin/dmd1033/bin
> ~/code/bin/dmd1037/bin
> ~/code/bin/dmd2025/bin
> Then I make a symbolic link to one a these paths:
> ~/code/bin/dmd/bin

What you could do is, undo what you've done so far, then make a symbolic 
link like this:

cd ~/code/bin
ln -s dmd1033 dmd

then put ~/code/bin/dmd/bin into your PATH.

Now it should work.

Any time you want to switch version, just do

cd ~/code/bin
rm dmd
ln -s dmd2025 dmd

and now you're using dmd v2025.

I just tested this with dmd1040 and dmd2025, so it works.

> The symbolic link is in PATH. This way I can easily switch between whatever 
> d executables, libraries and so forth as required while keeping them 
> seperate. 
> The problem I'm experiencing is that DMD can find dmd.conf in it's own path 
> only when I fully qualify the dmd command like this: ~/code/bin/dmd/bin/dmd 
> main.d
> Putting dmd.conf in /etc works though, and putting dmd.conf in the current 
> path (of the source I'm building) also works. 
> Furthermore for D1 I'm using dsss in the same way and this doesn't cause any 
> problems. I thought perhaps some other dmd got picked up, but 'which dmd' 
> picks out the right path for dmd, if this command is reliable?

More information about the Digitalmars-d-learn mailing list