我正在编译从源的nexus一个android内核在HTCs developer website上找到。我通过DLing来自android dev站点的android NDK获得了ARM工具链。我能够运行make clean并且无需事先做出defconfig,但是当我运行make时,在运行编译器错误之前它只会变得非常费劲。交叉编译为Android使用NDK失败,编译器错误
目前我看到下列情况:
$MY_DIR/nexus_one/arch/arm/include/asm/glue.h:156:29: error: '#' is not followed by a macro parameter
有问题的行是:
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个不同的工具链,所以我开始认为特定的交叉编译器不是问题。我不确定还有什么要看。 – 2011-06-16 22:22:31