链接编辑器LD参数是什么意思?

问题描述

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

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

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

解决方法

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

即使对于静态二进制文件,也需要后者,否则其他任何事情都会使加载程序感到困惑,并且它将无法执行。

man ld列出其参数。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...