题
我在试图建立海湾合作委员会使用的AVR微控制器和avr-艾达和我已经打了一个路障引起的,由我定期编译器是太挑剔的版本,我需要AVR。我得到的以下警告,这又造成海湾合作委员会成员或作为报告的一个错误:
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
有没有一种方法指示海湾合作委员会或不会失败的警告?
解决方案
这里的触发是-gnatpg(实际上是-gnatg):这是“GNAT实施模式(用于编译GNAT单位)”。 -gnatp指 “抑制所有检查”。
我不知道的-gnatg的全面影响,但它肯定会导致警告被视为错误 - 像-Werror - 构建编译器本身无论如何;我想,我记得看到非致命警告,同时建立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
然后回到上一级,和“使”再次
这是一个交叉编译器,这样你就不会(我希望!)需要重复此为全力打造的三个阶段。
其他提示
尝试make -k
而不是仅仅make
。这将“继续”,而不是停止。
作为替代潜入构建系统,尝试在CFLAGS(或在配置时,如果使用GNU构建系统)的设置-Wno-error
,你应该能够通过环境做的。
看来-Werror标志在生成文件设定。也许你可以看看Makefile中CFLAGS选项和删除-Werror标志。该Werror标志将使所有警告变为错误。
在一般情况下,它不是一个好主意忽视的警告,从你的编译器。然而,如果这是一部分的大使处理有可能 -Werror
标志之前插入在序。开始寻找。
后看,似乎有多种多样的标志,以控制的警告而汇编Ada的代码。例如, -gnatwF
将 抑制警告未引用的表达式 根据 这导.可能的开关,你需要可以发现在提供的列表。
在gcc的配置,您可以添加--disable-werror
。
虽然它建议首先寻找适当的补丁。
如何把“编译警告(关,” ...“)”到你的代码中有问题的部分?