2017-12-31 64 views
1

私はCOBOLを自分で教えようとしています。これをやろうとしているうちに私は理解できない問題にぶつかりました。Open-COBOLがわからないsegフォールト

私はubuntu 16.04を実行していて、GnuCOBOL(Open-COBOL)を使ってコンパイルしています。私はこれがリポジトリのOpen-COBOLバージョンで問題になっている可能性があると思ったので、ソースからコンパイルして同じ問題を受け取ります。

このコードを実行しようとすると:

IDENTIFICATION DIVISION. 
PROGRAM-ID. Multi. 

DATA DIVISION. 
WORKING-STORAGE SECTION. 
*> Group Value 
    01 VALS. 
*> Elementary Value 
     05 VAL-1 PIC 9(03) VALUE 4. 
     05 VAL-2 PIC 9(03) VALUE 3. 
     05 RESULT PIC 9(06). 


PROCEDURE DIVISION. 
    MULTIPLY VAL-1 BY VAL-2 GIVING RESULT. 
    DISPLAY "Result is =" RESULT. 
    DISPLAY 'GROUP DATA ITEM = ' VALS. 

を私が受け取る:

Segmentation fault (core dumped) 

私がしてコンパイル:

cobc -free -o Multi.o ./Multi.cob 

私は私が何をしたかを把握するように見えることはできません間違い、およびseg faultの原因何か案は?前もって感謝します!

+0

プログラムの実行にはどのようなコマンドを使用していますか? –

+0

ちょうど./Multi.o、それはGnuCOBOLの例に従って動作するはずです。 –

+2

これは、 '-x'でコンパイルした場合にのみ動作します。デフォルトでは、GnuCOBOLは 'cobcrun'で実行されるモジュールにコンパイルされ、実行可能ファイルにはコンパイルされません。 –

答えて

3

あなたのコメントから、モジュールMulti.oを実行可能ファイルと間違えているようです。モジュールからMultiプログラムを実行する方法はcobcrun Multiです。

また、cobc -xを使用して通常の実行可能ファイルを作成することもできます。

関連する問題