On 11.11.2009 04:57, Sean Fennell wrote:
I'm very green to D, just learning it now.
I have a module that I wrote.  Its pretty simple, just helper functions to get 
input from user as certain data types
GetInt()
GetString()
GetChar()
etc...

I compiled the module using dmd -lib mymod.d which output mymod.a

Now I've imported my module into ask.d to test it and I get the folliowing 
linking error when I try to compile:

ask.o:(.data+0x4c): undefined reference to `_D4mymod12__ModuleInfoZ`
My dir structure looks like this:

project/
---ask.d
---lib/
------mymod.d
------mymod.a

and my import line is:

import lib.mymod;

Anyone seen this before? Using linux dmd v2.036

Thanks!


You have to hand all the files to the compiler, otherwise there will be missing symbols when the compiler runs the linker.

Like this:
dmd ask lib/mymod

Compiling to a library first, like you did, will work too. But you have to hand the compiler everything when you want to create the actual executable:

dmd ask lib/mymod.a

There are build tools, like dsss, that will automate this for you.

Reply via email to