2025-03-14 21:59:59 -06:00
|
|
|
# ld
|
|
|
|
|
|
|
|
|
|
> Link object files together.
|
2026-07-08 16:22:34 -06:00
|
|
|
> More information: <https://sourceware.org/binutils/docs/ld.html#Options>.
|
2025-03-14 21:59:59 -06:00
|
|
|
|
|
|
|
|
- Link a specific object file with no dependencies into an executable:
|
|
|
|
|
|
2025-05-08 12:26:01 -06:00
|
|
|
`ld {{path/to/file.o}} {{[-o|--output]}} {{path/to/output_executable}}`
|
2025-03-14 21:59:59 -06:00
|
|
|
|
2026-07-08 16:22:34 -06:00
|
|
|
- Link multiple object files together:
|
2025-03-14 21:59:59 -06:00
|
|
|
|
2026-07-08 16:22:34 -06:00
|
|
|
`ld {{path/to/file1.o path/to/file2.o ...}} {{[-o|--output]}} {{path/to/output_executable}}`
|
|
|
|
|
|
|
|
|
|
- Link a object file to a specific target emulation:
|
|
|
|
|
|
|
|
|
|
`ld {{path/to/file.o}} -m {{target_emulation}} {{[-o|--output]}} {{path/to/output_executable}}`
|
2025-03-14 21:59:59 -06:00
|
|
|
|
|
|
|
|
- Dynamically link an x86_64 program to glibc (file paths change depending on the system):
|
|
|
|
|
|
2026-07-08 16:22:34 -06:00
|
|
|
`ld {{[-o|--output]}} {{path/to/output_executable}} {{[-I|--dynamic-linker]}} {{/lib/ld-linux-x86-64.so.2}} {{/lib/crt1.o}} {{/lib/crti.o}} -lc {{path/to/file.o}} {{/lib/crtn.o}}`
|