【发布时间】:2011-06-16 21:07:49
【问题描述】:
我正在从HTCs developer website 上找到的源代码编译一个nexus one android 内核。我通过从 android 开发站点 DLing android NDK 获得了一个 ARM 工具链。我可以毫无问题地运行 make clean 和 make defconfig,但是当我运行 make 时,它只会在遇到编译器错误之前得到这么多。
目前我看到以下内容:
$MY_DIR/nexus_one/arch/arm/include/asm/glue.h:156:29: 错误:'#' 后面没有宏参数
违规行是:
1 /*
2 * Instruction Fault Status Register. (New register as of ARMv6)
3 * If processor has IFSR then set value, else set translation fault
4 */
5 #if defined(CONFIG_CPU_ABRT_EV7) || defined(CONFIG_CPU_ABRT_EV6)
6 # define CPU_PABORT_IFSR(reg) mrc p15, 0, reg, cr5, cr0, 1 @asm macro;
7 #else
8 # define CPU_PABORT_IFSR(reg) mov reg, #5 @asm macro;
9 #endif
具体来说,上面的第 8 行是编译器的内容。显然你不能有第二个 # 符号,但我不太确定这段代码中发生了什么,而且它看起来很重要,所以我不想碰它。
我猜我可能使用了错误的工具链进行编译?或者也许我以某种方式配置错误?有人知道这是怎么一回事吗?
谢谢, 布莱恩
【问题讨论】:
-
fyi,我现在已经用 4 种不同的工具链尝试过这个,所以我开始认为特定的交叉编译器不是问题。我不知道还有什么可以看的。
标签: android android-ndk cross-compiling