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

Reply via email to