1

我正在用一个简单的 Hello World 示例尝试 OpenCobol。

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
    DISPLAY "Hello World".
    STOP RUN.

我编译

cobc -x -free -o hello hello.cbl

并获得一个可行的可执行文件,但也有很多来自 gcc 的警告

warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

从谷歌搜索中,我只能找到我显然可以忽略这些而不会产生不良影响。但是由于各种原因,我想真正摆脱它们,如果没有别的,那么至少以某种方式压制它们。我怎样才能做到这一点?

4

4 回答 4

3

使用 -O 降低优化。

我原以为这会应用于 C 代码生成,而不是传递给 gcc。

如果您更喜欢对 gcc 的绝对控制,

编写一个脚本来包装您的构建。(通过 1)从 cobc 生成翻译后的 C 代码。(通过 2)使用 gcc 编译(使用较少的优化)。在大型项目中,您可以嵌套脚本以进行完整的构建。

于 2012-10-10T07:43:23.957 回答
1

原谅迟到的笔记;

为了控制 C 编译阶段,OpenCOBOL 在构建链中考虑了一些环境变量。

有关列表,请参阅http://opencobol.add1tocobol.com/#does-opencobol-work-with-llvm,包括 COB_CFLAGS 和 COB_LDFLAGS

于 2012-11-25T07:14:23.707 回答
0

这个 OpenCobol 论坛帖子看来,您需要使用该-fno-strict-aliasing选项。不能在这里尝试,因为我们不使用 OpenCobol。

于 2012-03-26T03:26:03.750 回答
-1

在幕后的某个地方,您正在调用 gcc 编译器。尝试设置编译器选项以关闭警告,如此处所述

该选项应类似于:-Wno-strict

于 2012-03-16T14:23:35.237 回答