How to link in a lib on cmd line?

Nick Sabalausky a at a.a
Tue Sep 7 18:34:55 PDT 2010


"Nick Sabalausky" <a at a.a> wrote in message 
news:i66oia$25s1$1 at digitalmars.com...
> I've tried all sorts of stuff and looked all over, but I'm completely at a 
> loss. How do I link in a static lib on the command line?

And I don't mean "with C" or anything like that, just ordinary D.

> type main.d
module main;
import theLib;
void main()
{
    foo();
}

> type theLib.d
module foo;
import std.stdio;
void foo()
{
    writeln("In foo");
}

> dmd theLib.d -lib

> dmd main.d -LtheLib.lib
OPTLINK (R) for Win32  Release 8.00.2
Copyright (C) Digital Mars 1989-2009  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
OPTLINK : Warning 9: Unknown Option : NOITHELIB.LIB
main.obj(main)
 Error 42: Symbol Undefined _D3foo12__ModuleInfoZ
main.obj(main)
 Error 42: Symbol Undefined _D3foo3fooFZv
--- errorlevel 2

Same results for "-LtheLib".
I saw something about "-L-ltheLibNameHere" somewhere, but "-L-ltheLib.lib" 
gets me:

OPTLINK (R) for Win32  Release 8.00.2
Copyright (C) Digital Mars 1989-2009  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
OPTLINK : Warning 9: Unknown Option : LTHELIB.LIB
main.obj(main)
 Error 42: Symbol Undefined _D3foo12__ModuleInfoZ
main.obj(main)
 Error 42: Symbol Undefined _D3foo3fooFZv
--- errorlevel 2

And with "-L-ltheLib" the message just says "LTHELIB" instead of 
"LTHELIB.LIB"





More information about the Digitalmars-d-learn mailing list