Walter Bright wrote:
Jarrett Billingsley wrote:
http://d.puremagic.com/issues/show_bug.cgi?id=424
I just added this to the bug report:
======================
The compiler already has a switch to generate multiple obj files from
one source file: -multiobj. I use it for debugging. But it would be a
royal pain to use if there's a lot.
A better way is to compile to a library with the -lib switch. That
splits the module into a zillion obj files, and stuffs them all into the
library. Then, link with the library (the main() program will still have
to be separate).
=======================
Can you give it a try?
I've tried it before and unfortunately there's a problem with this
approach: static ctors from modules linked from a .lib don't get executed:
>cat Main.d
void main() {
}
>cat Mod.d
extern (C) int printf(char*, ...);
static this() {
printf("Running a static ctor for Mod"\n);
}
// compiling Mod into an .obj
>dmd -c Main.d
>dmd -c Mod.d
>dmd Main.obj Mod.obj && Main.exe
Running a static ctor for Mod
// compiling Mod into a .lib
>dmd -lib Mod.d
>dmd Main.obj Mod.lib && Main.exe
>
--
Tomasz Stachowiak
http://h3.team0xf.com/
h3/h3r3tic on #D freenode