https://issues.dlang.org/show_bug.cgi?id=22367
--- Comment #7 from Walter Bright <[email protected]> --- > $ dmd -betterC -lib mylib1.d mylib2.d This compiles mylib1.d and mylib2.d, and creates a library file mylib.lib containing the object code from both. > $ dmd -I. mylib1 myexe.d -main This compiles mylib1.d and myexe.d together to form an executable named mylib1.exe. It fails to find anything from mylib2.d, because that wasn't given on the command line. This is not a compiler bug. I think what you really meant was: dmd -betterC mylib1.d mylib2.d which creates mylib1.obj into which is placed the compiled versions of mylib1.d and mylib2.d dmd -I. myexe.d mylib1.obj -main which compiles myexe.d and links it to mylib1.obj, creating an executable named myexe.exe. Or at least it tries to, as it gives: myexe.obj(myexe) Error 42: Symbol Undefined __D6mylib212__ModuleInfoZ because -betterC suppresses generating a ModuleInfo, while myexe.d expects it to be there. This is a compiler bug, or at least a compiler problem. --
