我正在尝试使用LLVM(来自Homebrew)构建 ELF 文件,但我不知道如何链接它。
我的文件:
multiboot2.h:
struct multiboot2_header_t {
// Stub
} multiboot2_header __attribute__((section(".multiboot")));
内核.c:
#include "multiboot2.h"
void _start() {
// Stub
}
链接器.ld:
ENTRY(_start)
SECTIONS
{
.text: {
/* link the multiboot struct here */
. = ALIGN(8);
KEEP(*(.multiboot))
/* place all of your code afterwards */
*(.text)
}
}
我可以通过命令将其编译为目标文件kernel.oclang -c -o kernel.o kernel.c --target x86_64-none-gnu
,但我无法使用我的链接器脚本链接此目标文件。
PS在我从未直接使用LLVM和链接器之前,只有GNU GCC构建简单的 Linux 应用程序。