问题描述
我正在尝试构建gcc以便与AVR微控制器和avr-ada一起使用,并且由于我的常规编译器对AVR所需的版本过于挑剔而导致了一个障碍。我收到以下警告,这反过来导致gcc或make报告错误:
gcc -c -g -O2 -gnatpg -gnata -nostdinc -I- -I。 -Iada
-I ../../ gcc / ada ../../gcc/ada/exp_ch5.adb -o ada / exp_ch5.o
exp_ch5.adb:177:16:警告:函数Has_Address_Clause未被引用
make [2]:*** [ada / exp_ch5.o]错误1
make [1]:*** [all-gcc]错误2
make:*** [all]错误2
有没有办法指示gcc或make在这里触发的是-gnatpg(实际上是-gnatg):这是 GNAT实施模式(用于编译GNAT单元)。 -gnatp表示取消所有检查。
我不确定-gnatg的全部效果,但它肯定会将警告视为错误 - 就像 - 错误 - 无论如何建立编译器本身;我想我记得在构建RTS的时候看到了非致命的警告。
一种可能性是只用exp_ch5.adb手工编译而不用-gnatg;你列出的命令是在gcc /发出的,所以
$ cd gcc
$ gcc -c -g -O2 -gnatp -gnata -nostdinc -I- -I。 -Iada -I ../../ gcc / ada \
../../gcc/ada/exp_ch5.adb -o ada / exp_ch5.o
然后备份一个级别,然后再次制作。
编译器,所以你不会(我希望!)需要在整个构建的所有三个阶段重复这一点。
I'm trying to build gcc for use with an AVR micro controller and avr-ada, and I've hit a roadblock caused by my regular compiler being too picky about the version I needed for the AVR. I get the following warning, which in turn causes the gcc or make to report an error:
gcc -c -g -O2 -gnatpg -gnata -nostdinc -I- -I. -Iada -I../../gcc/ada ../../gcc/ada/exp_ch5.adb -o ada/exp_ch5.o exp_ch5.adb:177:16: warning: function "Has_Address_Clause" is not referenced make[2]: *** [ada/exp_ch5.o] Error 1 make[1]: *** [all-gcc] Error 2 make: *** [all] Error 2
Is there a way to instruct gcc or make to not fail on warnings?
解决方案The trigger here is the -gnatpg (actually, the -gnatg): this is the "GNAT implementation mode (used for compiling GNAT units)". -gnatp means "suppress all checks".
I'm not sure of the full effect of -gnatg, though it certainly causes warnings to be treated as errors -- like -Werror -- at any rate while building the compiler itself; I think I remember seeing non-fatal warnings while building the RTS.
One possibility would be to compile just exp_ch5.adb by hand without -gnatg; the command you list was issued at gcc/, so
$ cd gcc $ gcc -c -g -O2 -gnatp -gnata -nostdinc -I- -I. -Iada -I../../gcc/ada \ ../../gcc/ada/exp_ch5.adb -o ada/exp_ch5.o
Then back up one level, and 'make' again.
This is a cross-compiler, so you won't (I hope!) need to repeat this for all three stages of a full build.
这篇关于海湾合作委员会,使:如何禁用失败警告?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!