The linker combines several object and library files into one output file. ld65 is very configurable, but fortunately has built-in configurations, so we don't need to mess with configuration files, here.
The compiler uses small functions to do things that cannot be done inline
without a big impact on code size. Those runtime functions, together with the
C library, are in an object-file archive named after the system, in this case,
"c64.lib
". We have to specify that file on the command line, so that the
linker can resolve those functions.
Let's link our files to get the final executable:
ld65 -t c64 -o hello hello.o text.o c64.lib
The argument after -o
specifies the name of the output file, the argument
after -t
gives the target system. The following arguments are object
files or libraries. Since the target library resolves imports in hello.o
and text.o
, it must be specified after those files.
After a successful linker run, we have a file named "hello
", ready for
our C64!
For more information about the linker, see ld65.html.