▼スレッド
│
└◇2818:Tinycobol on Cygwinでリンケージができません。 [ゆにゆに] 04/20 15:51
└◇2820:Re:Tinycobol on Cygwinでリンケージができません。 [もぐりん] 04/21
└◇2868:Re[2]:Tinycobol on Cygwinでリンケージができません。 [ゆにゆに] 05/11 <
OSがWindows2000のパソコンにCOBOLの環境を構築しています。スレッド一覧
そこで下記をインストールしました。
@Cygwin
Adb-1.86-1.cygwin.tar.gz
Btinycobol-0.61-1.cygwin.tar.gz
※ABはCygwinのカレントディレクトリでtarコマンドにて解凍
早速'HELLO WORLD!'を表示するだけのプログラムをコンパイル&リンクしてみたら、以下メッセージが出力され、失敗しました。
$ htcobol hello.cob
/usr/lib/libhtcobol.a(fileio.o)(.text+0x723):fileio.c: undefined reference to `_dbopen'
/usr/lib/libhtcobol.a(fileio.o)(.text+0x818):fileio.c: undefined reference to `_dbopen'
/usr/lib/libhtcobol.a(fileio.o)(.text+0x45b9):fileio.c: undefined reference to `_dbopen'
Info: resolving __impure_ptr by linking to __imp___impure_ptr (auto-import)
collect2: ld returned 1 exit status
ちなみに「-c」オプションを付けてコンパイルだけをするなら問題なくできるので、リンクはgccからリンクしてみました。
$ htcobol -c hello.cob
⇒成功!オブジェクトファイルが作成される。しかし。。。
$ gcc -o hello hello.o -lm -lhtcobol -ldb
⇒以下のメッセージが出力され、実行ファイルが作成できません。
/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../../i686-pc-cygwin/bin/ld: cannot
find -lhtcobol
collect2: ld returned 1 exit status
原因がお解りになる方、よろしくお願いします。
ここだけ。スレッド一覧
> $ gcc -o hello hello.o -lm -lhtcobol -ldb
> ⇒以下のメッセージが出力され、実行ファイルが作成できませ> ん。
> /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../../i686-pc-cygwin/bin/ld: cannot
> find -lhtcobol
> collect2: ld returned 1 exit status
単にhtcobolという名前のライブラリが見つからないのでは?
/usr/libの下や、/usr/local/libなどを探してライブラリのパスが適切に設定されているか環境変数を確認しましょう。
返信ありがとうございます。スレッド一覧
試してからお礼をと思い遅くなってしまいました。
また、よろしくお願いします。