小编Xte*_*ter的帖子

在 x86 平台中使用 -mcmodel=kernel 标志

我正在尝试将为 x86 架构构建的设备驱动程序交叉编译到 ARM 平台。它的编译没有任何错误,但我认为所有功能都不可用。所以我检查了 makefile 并找到了这个特定的部分。

ifeq ($(ARCH),x86_64)
    EXTRA_CFLAGS += -mcmodel=kernel -mno-red-zone
Run Code Online (Sandbox Code Playgroud)

这似乎是唯一依赖于架构的部分。在google上一段时间后,我发现 -mcmodel=kernel 用于内核代码模型,而 -mno-red-zone 是为了避免在内存中使用红色区域,并且它们都适用于 x86_64。但我不清楚,将 cmodel 设置为内核会产生什么影响?

(任何对arm问题的深入了解也将不胜感激。)

c gcc makefile x86-64 red-zone

2
推荐指数
1
解决办法
2493
查看次数

标签 统计

c ×1

gcc ×1

makefile ×1

red-zone ×1

x86-64 ×1