Import function from module

Mike Parker aldacron71 at
Sat Oct 14 14:57:42 PDT 2006

LW wrote:
> How do I use a function from another module in my main file without
> generating a library-file or using the second file as a parameter for
> dmd.exe?

You can't. If DMD doesn't compile and link the second file, then how are 
you going to use the function? You have to understand that D is a 
statically compiled language. Each module is compiled into an object 
file and then linked into the executable. A library is just an archive 
of object files (precompiled modules) that you don't have to recompile 
each time. So you have to either pass the second module on the command 
line or precompile it as an object or library file.

FYI, you can create a makefile and use the make utility (which ships 
with DMC, a prerequisite for DMD so you have it already) to build your 
project. You can add each module to the make file, define rules, invoke 
make, and it will build the project. But makefiles can be complex and 
bothersome. Fortunately, there is a tool that will pass all imported 
modules to DMD automatically, called Build (which you can find at Pass only your main module to 
build and it will make sure that all imported modules are compiled and 
linked: build mymodule.d. Very simple. No complex makefiles or long 
command lines.

More information about the Digitalmars-d-learn mailing list