The ld65 linker combines several object modules created by the ca65
assembler, producing an executable file. The object modules may be read
from a library created by the ar65 archiver (this is somewhat faster and
more convenient). The linker was designed to be as flexible as possible.
It complements the features that are built into the ca65 macroassembler:
- Accept any number of segments to form an executable module.
- Resolve arbitrary expressions stored in the object files.
- In case of errors, use the meta information stored in the object files
to produce helpful error messages. In case of undefined symbols,
expression range errors, or symbol type mismatches, ld65 is able to
tell you the exact location in the original assembler source, where
the symbol was referenced.
- Flexible output. The output of ld65 is highly configurable by a config
file. More common platforms are supported by builtin configurations
that may be activated by naming the target system. The output
generation was designed with different output formats in mind, so
adding other formats shouldn't be a great problem.