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]

Google検索から私が見つけることができるのは、明らかにこれらを無視しても悪影響がないということだけです。しかし、さまざまな理由から、私は実際にそれらを取り除きたいと思っています。これどうやってするの?

4

4 に答える 4

3

-O を使用して、最適化をトーンダウンします。

これは C コードの生成に適用され、gcc には渡されないと予想していました。

gcc を完全に制御したい場合は、

ビルドをラップするスクリプトを作成します。(パス 1) cobc から変換された C コードを生成します。(パス 2) gcc を使用して (より少ない最適化で) コンパイルします。大規模なプロジェクトでは、フル ビルド ala make 用のスクリプトをネストできます。

于 2012-10-10T07:43:23.957 に答える
1

遅いメモを失礼します。

Cコンパイルフェーズを制御するために、OpenCOBOLはビルドチェーン中にいくつかの環境変数を尊重します。

COB_CFLAGSおよびCOB_LDFLAGSを含むリストについては、http: //opencobol.add1tocobol.com/#does-opencobol-work-with-llvmを参照してください。

于 2012-11-25T07:14:23.707 に答える
0

この OpenCobol フォーラム スレッドから、-fno-strict-aliasingオプションを使用する必要があるようです。OpenCobol を使用していないため、ここでは試すことができません。

于 2012-03-26T03:26:03.750 に答える
-1

Somewhere under the covers you are invoking the gcc compiler. Try setting compiler options to turn the warning off as described here

The option should look something like: -Wno-strict

于 2012-03-16T14:23:35.237 に答える