"Daniel Keep" <daniel.keep.li...@gmail.com> wrote in message news:hse30q$1tn...@digitalmars.com... > > That's right, it's time for everyone's favourite [1] game: guess why > OPTLINK's not working! [2] > > *sigh* I'm writing a math eval library. There are two test > applications. LexerTest only touches part of the code. AstTest touches > everything. > > Now, the following works and creates an executable: > > dmd -ofLexerTest (appropriate .d files) > > So far, so good. I get LexerTest.map, LexerTest.obj and LexerTest.exe. > Let's try the other one... > > dmd -ofAstTest (more .d files) > > This creates a legitimate-looking AstTest.obj and a completely empty > AstTest.map file. > > That's it. > > No executable, no error message, no register dump, nothing. > > Adding or removing -g, -debug, -unittest, -release, -inline, -O does > nothing. Changing the target filename does nothing useful. > > There are no spurious link.exe or dmd.exe processes running. Invoking > OPTLINK directly changes nothing. > > Does anyone have any idea, any idea at all, on what could be causing > this? I've tried everything myself and several others on #d could think > of. > > *miserable sob* > > After over five years of this sort of shit, I am so, so completely and > utterly sick to death of OPTLINK. > > > > [1] I am, of course, being sarcastic. > > [2] It is, of course, entirely possible that it's not OPTLINK's fault. > Frankly though, I find that hard to believe.
Disclaimer: There's probably a good chance that I'm completely off-base here.... Did you try deleting all the object files before trying to compile AstTest? I've often had linker problems (although in my case, they were always linker errors, not silence) when compiling two different targets that share code (or two configurations of the same target) without clearing the object files in-between. (Because of that, I've been in the habit of always setting up my builds so that each target/configuration combination has it's own separate directory for object files.)