Thread overview
Building DMD from git
Jul 24, 2011
Nick Sabalausky
Jul 24, 2011
Jonathan M Davis
Jul 24, 2011
Nick Sabalausky
July 24, 2011
Ok, this is probably some stupid little issue, but I'm getting "object.d: Error: module object is in file 'object.d' which cannot be read" when I try to use a DMD I build from git. Here's how I'm building it all:

-----------------------------------------

[DMC is already installed and on the PATH]

>git clone https://github.com/D-Programming-Language/dmd.git
>git clone https://github.com/D-Programming-Language/druntime.git
>git clone https://github.com/D-Programming-Language/phobos.git
>mkdir dmd\bin
>mkdir dmd\lib
>SET PATH={current_dir}\dmd\bin;%PATH%

[edit dmd\src\win32.mak and change the stupid  "CC=\dm\bin\dmc" to "CC=dmc"]

[create a specially-adjusted dmd\bin\sc.ini]

>type dmd\bin\sc.ini
[Version]
version=7.51 Build 020

[Environment]
LIB="%@P%\..\lib";\dm\lib
DFLAGS="-I%@P%\..\..\phobos" "-I%@P%\..\..\druntime\import"
LINKCMD=%@P%\link.exe

>cd dmd\src
>make -fwin32.mak
>cd ..\..
>copy dmd\src\dmd.exe dmd\bin
>cd druntime
>make -fwin32.mak
>cd ..
>copy druntime\lib\druntime.lib dmd\lib
>cd phobos
>make -fwin32.mak
>cd ..
>copy phobos\phobos.lib dmd\lib
>type test.d
import std.stdio;
void main()
{
    writeln("Hello");
}

>dmd test.d
DMD v2.055 DEBUG
object.d: Error: module object is in file 'object.d' which cannot be read
import path[0] = .\..\..\phobos
import path[1] = .\..\..\druntime\import



July 24, 2011
On Saturday 23 July 2011 20:23:16 Nick Sabalausky wrote:
> Ok, this is probably some stupid little issue, but I'm getting "object.d: Error: module object is in file 'object.d' which cannot be read" when I try to use a DMD I build from git. Here's how I'm building it all:
> 
> -----------------------------------------
> 
> [DMC is already installed and on the PATH]
> 
> >git clone https://github.com/D-Programming-Language/dmd.git
> >git clone https://github.com/D-Programming-Language/druntime.git
> >git clone https://github.com/D-Programming-Language/phobos.git
> >mkdir dmd\bin
> >mkdir dmd\lib
> >SET PATH={current_dir}\dmd\bin;%PATH%
> 
> [edit dmd\src\win32.mak and change the stupid  "CC=\dm\bin\dmc" to "CC=dmc"]
> 
> [create a specially-adjusted dmd\bin\sc.ini]
> 
> >type dmd\bin\sc.ini
> 
> [Version]
> version=7.51 Build 020
> 
> [Environment]
> LIB="%@P%\..\lib";\dm\lib
> DFLAGS="-I%@P%\..\..\phobos" "-I%@P%\..\..\druntime\import"
> LINKCMD=%@P%\link.exe
> 
> >cd dmd\src
> >make -fwin32.mak
> >cd ..\..
> >copy dmd\src\dmd.exe dmd\bin
> >cd druntime
> >make -fwin32.mak
> >cd ..
> >copy druntime\lib\druntime.lib dmd\lib
> >cd phobos
> >make -fwin32.mak
> >cd ..
> >copy phobos\phobos.lib dmd\lib
> >type test.d
> 
> import std.stdio;
> void main()
> {
>     writeln("Hello");
> }
> 
> >dmd test.d
> 
> DMD v2.055 DEBUG
> object.d: Error: module object is in file 'object.d' which cannot be read
> import path[0] = .\..\..\phobos
> import path[1] = .\..\..\druntime\import

It can't find object_.d. It means that the path to druntime (and probably the path to phobos as well) is screwed up. Your dmd.conf (or sc.ini I guess, since you appear to be on Windows) needs to be fixed to have the correct paths.

- Jonathan M Davis
July 24, 2011
"Jonathan M Davis" <jmdavisProg@gmx.com> wrote in message news:mailman.1890.1311472074.14074.digitalmars-d-learn@puremagic.com...
>
> It can't find object_.d. It means that the path to druntime (and probably
> the
> path to phobos as well) is screwed up. Your dmd.conf (or sc.ini I guess,
> since
> you appear to be on Windows) needs to be fixed to have the correct paths.
>

Heh, turns out the problem was something I glossed over in my listing of what I did.

When I created sc.ini, I created it in the main current directory (ie, the same directory that contains the "dmd", "druntime" and "phobos" subdirectories). Then I gave sc.ini to DMD with:

> copy sc.ini dmd\bin

And then ran dmd from the current directory. So DMD picked up ./sc.ini instead of ./dmd/bin/sc.ini. And of course, since the paths in sc.ini are given relative to sc.ini itself, that's what screwed it up.

Boy, three time-consuming dumbass mistakes in two days. I'm really on a roll here... ;)