On 18/12/13 10:41, Leandro Motta Barros wrote:
With these simple examples I sent, rdmd seem to resolve dependecies correctly.
For example, with this last example I sent (which prints the class name):

$ rdmd main.d
mylib.util.Foo

If I create an example analogous to yours, it seems OK. However, I was dealing with a case where the package is at the 2nd level of the subdirectory hierarchy:

    std/random2/package.d
    std/random2/generator.d
    std/random2/distribution.d

and so on.  That might have something to do with it.

$ dmd main.d
main.o: In function `_Dmain':
main.d:(.text._Dmain+0xb): undefined reference to `_D5mylib4util3Foo7__ClassZ'
collect2: error: ld returned 1 exit status
--- errorlevel 1

Well, quite. dmd doesn't resolve dependencies, it expects you to pass it all the necessary source or object files ...

$ dmd main.d mylib/util.d
$ ./main
mylib.util.Foo

... like this.

In this case, at least, rdmd correctly resolved, compiled and linked
mylib/util.d, which was imported through a package.

I think that there must be a problem with packages that are in the 2nd rather than 1st level of the subdirectory hierarchy.

Reply via email to