link 编辑器 (LD) 参数是什么意思?
What do link editor (LD) params mean?
我编写 NASM(全网汇编程序)程序,出于某些原因我需要使用一些用 C 编写的函数。因此,我尝试 link 使用编译的汇编对象编译 C 对象文件ld link 编辑器。我是这样做的:
ld -m elf_x86_64 -lc --dynamic-linker=/lib64/ld-linux-x86-64.so.2 object_files -o program
.
它不想 link 工作足够长的时间,直到我获得必要的参数。现在,此参数集可按预期工作。但是我不明白-lc
和--dynamic-linker=/lib64/ld-linux-x86-64.so.2
的意思。他们做什么?
- -lc - link c 标准库
- --dynamic-linker=/lib64/ld-linux-x86-64.so.2. - 设置程序加载器。 Linux ELF 二进制文件为此提供了一个字段。
Afaik 即使对于静态二进制文件也需要后者,任何其他内容都会混淆加载程序,并且它不会执行。
man ld 列出其参数。
我编写 NASM(全网汇编程序)程序,出于某些原因我需要使用一些用 C 编写的函数。因此,我尝试 link 使用编译的汇编对象编译 C 对象文件ld link 编辑器。我是这样做的:
ld -m elf_x86_64 -lc --dynamic-linker=/lib64/ld-linux-x86-64.so.2 object_files -o program
.
它不想 link 工作足够长的时间,直到我获得必要的参数。现在,此参数集可按预期工作。但是我不明白-lc
和--dynamic-linker=/lib64/ld-linux-x86-64.so.2
的意思。他们做什么?
- -lc - link c 标准库
- --dynamic-linker=/lib64/ld-linux-x86-64.so.2. - 设置程序加载器。 Linux ELF 二进制文件为此提供了一个字段。
Afaik 即使对于静态二进制文件也需要后者,任何其他内容都会混淆加载程序,并且它不会执行。
man ld 列出其参数。