-run with import gives OPTLINK Error 42
MikeWh
cf725b-0 at yahoo.com
Sat May 16 17:09:38 PDT 2009
Argh! So simple, but it's been driving me crazy for the past two days.
Thank you.
"Frits van Bommel" <fvbommel at REMwOVExCAPSs.nl> wrote in message
news:guni54$2r4s$1 at digitalmars.com...
> MikeWh wrote:
>> I have 2 files: 1. a main file called caller.d, 2. a file to import
>> called sub.d. They are:
>>
>> // caller.d
>> import sub;
>> import std.stdio;
>> void main(){
>> sub mySub= new sub;
>> writefln( mySub.one() );
>> }
>>
>> // sub.d
>> class sub{
>> int one(){
>> return 1;
>> }
>> }
>>
>> Everything compiles fine using "dmd caller.d sub.d", and correctly writes
>> "1" when I execute "caller".
>> But if I try "dmd -run caller.d sub.d" I get "OPTLINK Error 42: Symbol
>> Undefined _D3sub3sub7_ClassZ"
>> I get the error even if I first do "dmd -lib sub.d". Same thing happens
>> in D 1.043 as D 2.028.
>>
>> Anyone know what I'm doing wrong here?
>
> You can only specify one source file after -run. The rest of the command
> line is used as the command line for the program being run. Since sub.d
> isn't compiled and linked in, you get the undefined symbol before it gets
> that far.
> What you want to use is "dmd sub.d -run caller.d".
More information about the Digitalmars-d-learn
mailing list