首页 > 解决方案 > 当我使用 crosstool-4.3 构建自己的 crosstool 时出现问题

问题描述

在CentOS 7.5 64位系统上编译交叉编译工具crosstool-0.43(for arm9)时遇到如下错误:</p>

cc -c -o flat_bl.o /home/muhuo/arm-linux-project/transplant-test/build-tools/crosstool-0.43/build/arm-9tdmi-linux/gcc-4.1.0-glibc-2.3.2 /binutils-2.16.1/gprof/flat_bl.m /home/muhuo/arm-linux-project/transplant-test/build-tools/crosstool-0.43/build/arm-9tdmi-linux/gcc-4.1.0-glibc -2.3.2/binutils-2.16.1/gprof/flat_bl.m:2:2: 错误:预期标识符或 ??在 ??token 之前

% 占总运行时间的百分比

^

我不知道 *. binutils-2.16.1 中的 m 文件是。我之前是否需要安装一些其他工具?从上图看,用 GCC 编译 *.m 文件应该是错误的。我需要一些帮助。谢谢。

标签: gccembedded-linux

解决方案


问题是有一个内置的“.mo”后缀规则触发的优先级高于“.co”后缀规则。曾尝试在PR2587下禁用此规则,但由于它是旧式后缀规则,因此不起作用。

有两种可能的解决方案,一种是通过将行添加.MAKEFLAGS: -rbinutils/gprof/Makefile.in某处来删除所有内置规则,或者更正确地更改.SUFFIXES:同一文件中的行,以便 '.m' 在 '.c' 之后,从而更改规则优先级.


推荐阅读