## digitalmars.D.learn - import resolution

RandyH <me me.com> writes:
I've been playing with D on and off for a couple of years now, but now i'm
taking a more serious look at it.

So far things have generally gone well, but now i'm encountering an import
resolution issue.  In my source, I import tango.core.Thread and compile with:

dmd main.d -IC:\dmd\tango\import\tango\core

and get the following error:

Well Thread is an interface file, not a source file.  According to the docs,
the compiler looks for interface files first then source files but yet doesn't
seem to be able to find it.

In fact i've encountered more occasions where i've specified the import dir on
the command line but dmd is unable to see the file, but this one is my main
stumbling block right now.

Any ideas?

Oct 13 2007
Daniel Keep <daniel.keep.lists gmail.com> writes:
RandyH wrote:
I've been playing with D on and off for a couple of years now, but now i'm
taking a more serious look at it.

So far things have generally gone well, but now i'm encountering an import
resolution issue.  In my source, I import tango.core.Thread and compile with:

dmd main.d -IC:\dmd\tango\import\tango\core

and get the following error:

Well Thread is an interface file, not a source file.  According to the docs,
the compiler looks for interface files first then source files but yet doesn't
seem to be able to find it.

In fact i've encountered more occasions where i've specified the import dir on
the command line but dmd is unable to see the file, but this one is my main
stumbling block right now.

Any ideas?

Have you tried using -IC:\dmd\tango\import ?  I am fairly certain that
it's going to look for "tango.core.Thread" in {list of import

-- Daniel

Oct 13 2007
RandyH <me me.com> writes:
Daniel Keep Wrote:

RandyH wrote:
I've been playing with D on and off for a couple of years now, but now i'm
taking a more serious look at it.

So far things have generally gone well, but now i'm encountering an import
resolution issue.  In my source, I import tango.core.Thread and compile with:

dmd main.d -IC:\dmd\tango\import\tango\core

and get the following error:

Well Thread is an interface file, not a source file.  According to the docs,
the compiler looks for interface files first then source files but yet doesn't
seem to be able to find it.

In fact i've encountered more occasions where i've specified the import dir on
the command line but dmd is unable to see the file, but this one is my main
stumbling block right now.

Any ideas?

Have you tried using -IC:\dmd\tango\import ?  I am fairly certain that
it's going to look for "tango.core.Thread" in {list of import

-- Daniel

Bingo.  That did it.  Thanks alot.  I'm still getting used to imports resolving
to actual path names.

Oct 13 2007
Reply to RandyH,

I've been playing with D on and off for a couple of years now, but now
i'm taking a more serious look at it.

So far things have generally gone well, but now i'm encountering an
import resolution issue.  In my source, I import tango.core.Thread and
compile with:

dmd main.d -IC:\dmd\tango\import\tango\core

try

dmd main.d -IC:\dmd

IIRC you need to give the root of the module tree as the import path.

I think in C it is the same. If you want to include c:\foo\bar\baz.h using
#include<bar\baz.h> then you  need to have c:\foo in the import dir list.

Oct 13 2007