我在试图建立海湾合作委员会使用的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

虽然它建议首先寻找适当的补丁。

如何把“编译警告(关,” ...“)”到你的代码中有问题的部分?

请参阅 http://www.adacore.com/2007 / 11/19 / ADA-宝石-18 /

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top