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).