gpt4 book ai didi

gcc - 如何在 gcc 程序集中启用预处理器

转载 作者:行者123 更新时间:2023-12-05 01:24:50 24 4
gpt4 key购买 nike

我是这样使用 GCC 的:

gcc -std=gnu99 -fno-leading-underscore -m32 -c -o obj/entry.o src/entry.s

但是,当我编译链接器时说:

ld -melf_i386 -T kernel.ld -o kernel obj/entry.o obj/init.o
obj/entry.o:(multiboot+0x0): undefined reference to `MB_MAGIC'
obj/entry.o:(multiboot+0x4): undefined reference to `MB_FLAGS'
obj/entry.o:(multiboot+0x8): undefined reference to `MB_CHECKSUM'

这些引用是在带有预处理器的 entry.s 文件中定义的:

#define MB_MAGIC 0x1badb002
#define MB_FLAGS 0x0
#define MB_CHECKSUM -(MB_MAGIC + MB_FLAGS)

如何启用预处理?

最佳答案

gcc's documentation 中所述,如果文件名以大写.S结尾,会自动进行预处理。您可以添加 -v 选项以查看 gcc 执行的步骤。如果不想更改文件名,也可以用-x assembler-with-cpp(在文件名前)指定语言。

关于gcc - 如何在 gcc 程序集中启用预处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27993384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com