0

可以获取在 GCC(Binutils ld 链接器)编译过程中使用的链接器脚本:

$ gcc -o main funcs.c main.c -Wl,--verbose
...
SECTIONS
{
  PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS;
  .interp         : { *(.interp) }
  .note.gnu.build-id  : { *(.note.gnu.build-id) }
  .hash           : { *(.hash) }
  .gnu.hash       : { *(.gnu.hash) }
  ...
}

但是,如果将 CLANG 与 LLD 一起使用,则没有这样的信息:

$ clang -fuse-ld=lld -o main funcs.c main.c -Wl,--verbose
ld.lld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crt1.o
...
ld.lld: /usr/lib/gcc/x86_64-linux-gnu/9/libgcc.a
ld.lld: /usr/lib/gcc/x86_64-linux-gnu/9/crtend.o
ld.lld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o

我只是好奇如何获取 CLANG/LLD 所需的信息。

4

0 回答 0