Passing directory as compiler argument not finding file

Tony tonytdominguez at aol.com
Fri Apr 13 01:27:06 UTC 2018


On Thursday, 12 April 2018 at 07:48:28 UTC, Jamie wrote:
  Really, it's more like:
>
> A/
>  a.d
>     module A.a;
>     import std.stdio;
>     import B.b;
>     void main()
>     {
>         writeln(f(4));
>     }
> B/
>  b.d
>     module B.b;
>     size_t f(size_t input)
>     {
>         return input * 2;
>     }
>
> And in A/ I'm compiling
>     dmd -ofoutput a.d ../B/b.d
>
> and instead I was thinking I could compile with
>     dmd -ofoutput a.d -I../B b.d
>
> and would get the same result. The former works, the latter 
> does not. Is there something like this that I can use or do I 
> have to pass all the files with the direct path to them? Thanks

I think that the typical model (at least in other languages) is 
to only compile one D source file at a time. Compile the b.d file 
with the -c option to create an object file. Then put the object 
file in a library file (either static (easier) or dynamic). Then 
you can use the -L compiler option to specify the directory of 
the library and the -l  compiler option to specify the library 
(library name is shortened - libb.a referenced as -lb).



More information about the Digitalmars-d-learn mailing list