extern intended behavior?

David Medlock noone at nowhere.com
Tue Jun 13 06:44:26 PDT 2006


Look at the following source files(main.d and test.d):

// main.d  ----------------------
extern
{
   void MyFunction();
}

void main(char[][] args )
{
   MyFunction();
}


// test.d ----------------------

import std.stdio;

void MyFunction()
{
   writefln("Hello World");
}

compiles fine, but linker complains:
  Error 42: Symbol Undefined _D4main10MyFunctionFZv
--- errorlevel 1


It appears the linker expects the extern function to be in the 'main' 
module.  This appears to be incorrect behavior.  If it isn't why such a 
departure from a common C idiom(lex and yacc).

Am I missing something?
-DavidM



More information about the Digitalmars-d mailing list