かつて仕事で使っていた。
opencobolをインストールしてみる。
wget http://sourceforge.net/projects/open-cobol/files/open-cobol/1.1/open-cobol-1.1.tar.gz/download
解凍して、configure, make, make install...
と思ったらmakeができない。
よく見るとconfigureの最後にエラーが出ている。
configure: error: gmp.h is required
gmpとは、The GNU Multiple Precision Arithmetic Library のことのようだ。http://gmplib.org/ からダウンロードしてくる。
wget ftp://ftp.gmplib.org/pub/gmp-5.1.2/gmp-5.1.2.tar.lz
拡張子がlz.... LHAで圧縮されているのか?なんで?
linuxでlzhのファイルを扱うのは初めてだ。
tarに --lzip というオプションがあることがわかったので指定するが失敗する。lhaをインストールしないといけないのか。
# tar xf gmp-5.1.2.tar.lz --lzip tar (child): lzip: exec 不能: そのようなファイルやディレクトリはありません tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now
lzipを持ってくる。
http://sourceforge.jp/projects/freshmeat_lzip/releases/
windowsで落としてftpでさくらのVPSのcentosに送った。
解凍してconfigure, make, make install
tarの--lzipオプションが使えるようになった。
無事解凍。
gmpをconfigure, make, make install
opencobol再度configure... できた。make, make install
サンプルソースをコンパイルしてみる。
cobc -x hello.cob
実行してみると、
./hello: error while loading shared libraries: libcob.so.1: cannot open shared object file: No such file or directory
/usr/local/libにちゃんと libcob.so.1はある。
調べると、ldconfigをすればよいことがわかる。
参考 http://d.hatena.ne.jp/GARAPON/20100406/1270567339
動いた!
# ./hello Hello World 0 Hello World 0 Hello World 2
ちなみにソースは http://codezine.jp/article/detail/2291?p=4
にあったもの。
123456*890123456789012345678901234567890123456789012345678901234567890 IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE1. AUTHOR. Eiichi Fuse. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 77 CMD PIC 9. PROCEDURE DIVISION. PG-TOP. DISPLAY "Hello World". ACCEPT CMD. IF CMD = 0 THEN GO TO PG-TOP. STOP RUN.
ファイルを読んで集計する。
123456*890123456789012345678901234567890123456789012345678901234567890123456789 IDENTIFICATION DIVISION. PROGRAM-ID. MYPROG01. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT MEIBO ASSIGN TO "meibo.txt" ORGANIZATION LINE SEQUENTIAL FILE STATUS IS MEIBO-STS. DATA DIVISION. FILE SECTION. FD MEIBO. 01 MEIBO-RECORD. 05 BANGOU PIC X(8). 05 NAMAE PIC X(20). 05 TELEPHONE PIC X(15). 05 JUSHO PIC X(20). 05 SALARY PIC 9(8). WORKING-STORAGE SECTION. 01 MEIBO-STS PIC XX. 01 GOUKEI PIC 9(10) VALUE ZERO. 01 JUDGE PIC X. 88 ZOKKO VALUE "1". 88 SHURYO VALUE "2". PROCEDURE DIVISION. MAIN SECTION. HAJIME. OPEN INPUT MEIBO. SET ZOKKO TO TRUE. YOMIKOMI. PERFORM UNTIL SHURYO READ MEIBO AT END SET SHURYO TO TRUE; NOT AT END DISPLAY BANGOU NAMAE SALARY ADD SALARY TO GOUKEI END-READ END-PERFORM. DISPLAY GOUKEI. OWARI. CLOSE MEIBO. STOP RUN.
DISPLAY文で見出しをつけようと "number:" などというのを挟むと正しく表示されなかったりコンパイルエラーになったりする・・・
なぜだろう・・・
ファイルの項目を日本語にしてみたがうまくいかない・・・日本語対応が不十分という情報もみかけた・・・