DMD Refuses to Compile Multiple Source Files
Samwise via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Jan 17 18:35:39 PST 2017
Alright. For the sake of this argument, I'm going to post all the
stuff about a really tiny boring program that quite literally
does nothing, even though I found this issue when I was working
with a much larger project with more functions. Basically I'm
getting errors when I attempt to compile multiple source files
using the DMD. It does not matter whether it's through dub or
just straight DMD. A few little code snippets and DMD output (The
dub output is basically the same as the DMD, just with a few more
lines):
hello.d (This file contains the main function, as you can see. I
put the headers in here to simplify things.):
import std.stdio;
int getReturnCode();
int main() {
writeln("Hello World!");
return getReturnCode();
}
getReturnCode.d (This file is the home of my cute function, which
does nothing...):
int getReturnCode() {
return 4;
}
Those were the complete contents of my two basic program files.
The Compilation works fine (Can generate both object files using
the -c switch with the DMD). However, it just stops when
linking...
$ dmd getReturnCode.d hello.d
getReturnCode.o: In function `_Dmain':
hello.d:(.text._Dmain+0x17): undefined reference to
`_D5hello13getReturnCodeFZi'
collect2: error: ld returned 1 exit status
--- errorlevel 1
This basic output is what I'm getting whenever I try to compile a
main function using a function call that is for a function not
included in the main.d, regardless of pretty much any other thing.
Thank you for reading and at least attempting to help me solve
this issue...
~Sam
More information about the Digitalmars-d-learn
mailing list