【问题标题】:SOLVED : Link nasm with ld.lld linker已解决:使用 ld.lld 链接器链接 nasm
【发布时间】:2020-09-03 17:32:01
【问题描述】:

我有 main.s 文件。

extern printf
extern exit

section .data
  fmt: db "hi!", 0xa

section .text
global _start
_start:
  mov rax, 0
  mov rdi, fmt
  call printf
  call exit

编译运行

$ yasm -f elf64 main.s -o main.o
$ ld.lld main.o -o main --dynamic-linker /lib/ld-linux-x86-64.so.2
$ ./main

但我得到了:
ld.lld:错误:未定义符号:printf
ld.lld:错误:未定义符号:退出

ld.lld 没有像 ld 链接器那样的 -lc 选项。

【问题讨论】:

    标签: linker llvm nasm libc


    【解决方案1】:

    只需使用 : -L/lib 选项告诉链接器在哪里可以找到 libc

    ld.lld main.o --dynamic-linker /lib/ld-linux-x86-64.so.2 -o main -L/lib -lc
    

    【讨论】:

      猜你喜欢
      • 2018-12-15
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      • 2014-09-19
      相关资源
      最近更新 更多