Next Previous Contents

4. The linker

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.

Next Previous Contents