【发布时间】:2022-01-16 12:43:09
【问题描述】:
这个问题对你们中的一些人来说可能听起来很明显,但对我来说,它似乎是我理解图片所需的缺失部分。
编辑:具体来说,我在我的 PC 上使用 Ubuntu VM,试图构建一个应该在 BeagleBone Black 上运行的 Out-of-Tree 内核模块,
在make命令中我通常需要输入以下2个参数:
- ARCH=
- CROSS_COMPILE= 对我来说,“1”看起来像是多余的信息,只会增加 make 命令的复杂性。
当然,同时使用它们是有充分理由的,我尝试在许多论坛和网站中进行搜索,但找不到“傻瓜答案” - 我想这就是我正在寻找的.
所以 - 我的问题:指定 CROSS_COMPILE= 不足以构建源代码吗?举个例子:
- arm-linux-gnueabihf-
- aarch64-none-elf-
- arm-none-linux-gnueabihf
在上述所有选项中,我们都有目标 CPU 架构,即 arm 或 aarch64(也是 arm64)。
那么,如果架构已经包含在 CROSS_COMPILE= 指令中,为什么我们还需要一个特定的指令,例如 ARCH=?
【问题讨论】:
-
ARCH通常用于选择必须构建的项目部分,这取决于目标架构。CROSS_COMPILE一般用于选择特定的交叉编译器。如果您使用名为ccSuper7的自定义交叉编译器,构建系统如何猜测您的目标架构是 ARM?
标签: kernel makefile kernel-module