These error messages are coming from OPTLINK, the linker D uses for compiling 32-bit Windows programs.
If you're trying to compile your library to a .lib
file, you need to use the -lib
compiler switch to invoke the librarian (instead of linker) after compilation. (Technically DMD's librarian is built into the compiler, so it emits .lib
directly.)
If you only intended to compile one module to a .obj
file, use the -c
option to suppress invoking the linker.
If neither -lib
or -c
are specified, DMD will invoke the linker after compilation, which will attempt to build your source files into an executable program. If your none of your source files contain an entry point (main
function), the linker will complain about "No Start Address".
If you're trying to build a program that uses your library and you're getting link errors in only debug mode, it probably indicates that the linker can't find the debug version of the standard library. This setting is specified using the -debuglib
switch, and usually it is the same as the non-debug library (which can also be specified using the -defaultlib
switch).