[Issue 454] New: Setting LIB environment variable has no effect on Windows

Don Clugston dac at nospam.com.au
Wed Oct 25 05:33:48 PDT 2006

I don't think DMD (or DMC) ever claims to use the LIB environment variable.
If, like I have, you've ever tried installing eight different C++ 
compilers on the one machine, you learn to hate environment variables. 
Part of the reason I gave DMD a look, was that DMC was the only compiler 
that didn't interfere with the others.

d-bugmail at puremagic.com wrote:
> To reproduce problem:
> Extract dmc.zip to C:\
> Extract dmd.172.zip to C:\
> Change directory to an alternate drive, for example "cd d:"
> Create file test.d with the following contents:
>   import std.stdio;
>   void main() {
>     writefln("test");
>   }
> set PATH=c:\dm\bin;c:\dmd\bin;%PATH%
> dmd test.d
>   --- Fails to link because phobos.lib is not found ---
> set LIB=c:\dm\lib;c:\dmd\lib
> dmd test.d
>   --- Still fails to link because phobos.lib is not found ---
> Add "%@P%\..\..\dmd\lib" to LIB in c:\dm\sc.ini for example:
>   LIB="%@P"\..\lib";"%@P%\..\..\dmd\lib";"%@P%\..\mfc\lib";%LIB%
> dmd test.d
>   --- Now links successfully ---
> This problem also leads me to believe that the dmd\bin\sc.ini may also not be
> working because it was set to the following:
>   LIB="%@P%\..\lib";\dm\lib
> Although this is in the location of the dmd compiler, it should have been
> passed through to the linker like the LIB environment variable
> Personally, I think dmd\bin\sc.ini should default to this:
>   LIB="%@P%\..\lib";"%@P%\..\..\dm\lib";%LIB%
> The setting \dm\lib will not work if the linker is on a different drive from
> where the compile command is executed. I think it is more likely that the dm
> and dmd directories will be in the same relative location.

More information about the Digitalmars-d-bugs mailing list