-1

我编写了 NASM(网络汇编器)程序,出于某些原因,我需要使用一些用 C 编写的函数。因此,我尝试使用ld链接编辑器将编译的 C 对象文件与编译的汇编对象链接起来。我是这样做的:

ld -m elf_x86_64 -lc --dynamic-linker=/lib64/ld-linux-x86-64.so.2 object_files -o program.

在我获得必要的参数之前,它不想链接和工作足够长的时间。现在,此参数集可以按预期工作。但我不明白-lcand的含义--dynamic-linker=/lib64/ld-linux-x86-64.so.2。他们在做什么 ?

4

1 回答 1

1
  1. -lc - 链接 c 标准库
  2. --dynamic-linker=/lib64/ld-linux-x86-64.so.2。- 设置程序加载器。Linux ELF 二进制文件为此提供了一个字段。

即使对于静态二进制文件,Afaik 也需要后者,其他任何东西都会混淆加载器,并且它不会执行。

man ld 列出了它的参数。

于 2020-09-10T15:47:48.740 回答