在CentOS 7.5 64位系统上编译交叉编译器工具crosstool-0.43(对于arm9)时,遇到以下错误:
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:错误:预期的标识符或令牌之前的
%占
总运行时间的百分比^
我不知道*是什么。 binutils-2.16.1中的m文件是。我之前是否需要安装其他工具? 从上图中,用GCC编译* .m文件应该是错误的。 我需要一些帮助。谢谢。
答案 0 :(得分:0)
问题是存在一个内置的“ .m.o”后缀规则,该规则以比“ .c.o”后缀规则更高的优先级触发。曾尝试在PR2587下禁用此规则,但由于它是一个老式的后缀规则,因此无效。
有两种可能的解决方案,一种是通过将.MAKEFLAGS: -r
行添加到binutils/gprof/Makefile.in
某处来删除所有内置规则,或者更正确地更改同一文件中的.SUFFIXES:
行,以便“ .m”在“ .c”之后,因此更改了规则优先级。