なんで、うまくいかんのか、cl.exe のエラーメッセージとか見れないと調べようがないやん・・・と諦めてたんだけど・・・
ああ、ちゃんと「Display the commands invoked by the compiler」というオプションあるやん(^^;
俺がバージョン表示と間違えていた -v オプションがまさにそれだった。
これで原因わかるかも・・・と思って実行してみたら。
$ cobc -x -v test2.cobLoading standard configuration file 'default.conf'Command line: c:\usr\local\MinGW\bin\cobc.exe -x -v test2.cobPreprocessing: test2.cob -> C:/Users/shinoda/AppData/Local/Temp\cob12176_0.cobReturn status: 0Parsing: C:/Users/shinoda/AppData/Local/Temp\cob12176_0.cob (test2.cob)Return status: 0Translating: C:/Users/shinoda/AppData/Local/Temp\cob12176_0.cob -> C:/Users/shinoda/AppData/Local/Temp\cob12176_0.c (test2.cob)Executing: cl /c -I "C:\GnuCobol" -I "C:\GnuCobol\build_windows" /MD/Fo"C:/Users/shinoda/AppData/Local/Temp\cob12176_0.obj""C:/Users/shinoda/AppData/Local/Temp\cob12176_0.c"Microsoft(R) C/C++ Optimizing Compiler Version 18.00.30501 for x86Copyright (C) Microsoft Corporation. All rights reserved.cob12176_0.cC:/Users/shinoda/AppData/Local/Temp\cob12176_0.c(8) : fatal error C1083: include ファイルを開けません。'stdio.h':No such file or directoryReturn status: 2
ああ、include ファイルへのパスが通ってないんか・・・
Windows の環境変数に
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include
を追加して、コマンドプロンプトから実行してみると、今度は
C:\Users\shinoda\AppData\Local\Temp\cob13960_0.c(14) : fatal error C1083: include ファイルを開けません。'libcob.h':No such file or directory
だって。うーむ・・・
cl.exe で読み込んでも大丈夫なもんやろか?取り敢えずパス通してやってみようか。
/out:test2.exe/manifest/LIBPATH:C:\GnuCobol\build_windows\win32\releaselibcob.libC:\Users\shinoda\AppData\Local\Temp\cob6096_0.objLINK : fatal error LNK1181: 入力ファイル 'libcob.lib' を開けません。Return status: 2
よしよし。かなり近づいてきたで(笑)
LIBPATH にライブラリのパスを追加すればいいんか?あ、LIBPATH じゃなく環境変数 LIB か。
他にも読み込めない lib ファイルがいくつかあったので、そのパスも全て設定。
C:\usr\local\MinGW\libC:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\libC:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
さあ、どうだ!?
'mt' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。
ええ!?
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin
これを PATH に追加か?
C:\GnuCobol\bin>cobc -x -v test2.cobLoading standard configuration file 'default.conf'Command line: cobc -x -v test2.cobPreprocessing: test2.cob -> C:\Users\shinoda\AppData\Local\Temp\cob14512_0.cobReturn status: 0Parsing: C:\Users\shinoda\AppData\Local\Temp\cob14512_0.cob (test2.cob)Return status: 0Translating: C:\Users\shinoda\AppData\Local\Temp\cob14512_0.cob -> C:\Users\shinoda\AppData\Local\Temp\cob14512_0.c (test2.cob)Executing: cl /c -I "C:\GnuCobol" -I "C:\GnuCobol\build_windows" /MD/Fo"C:\Users\shinoda\AppData\Local\Temp\cob14512_0.obj""C:\Users\shinoda\AppData\Local\Temp\cob14512_0.c"Microsoft(R) C/C++ Optimizing Compiler Version 18.00.30501 for x86Copyright (C) Microsoft Corporation. All rights reserved.cob14512_0.cReturn status: 0Executing: cl /MD /Fe"test2.exe""C:\Users\shinoda\AppData\Local\Temp\cob14512_0.obj" /link/manifest /LIBPATH:"C:\GnuCobol\build_windows\win32\release"libcob.libMicrosoft(R) C/C++ Optimizing Compiler Version 18.00.30501 for x86Copyright (C) Microsoft Corporation. All rights reserved.Microsoft (R) Incremental Linker Version 12.00.30501.0Copyright (C) Microsoft Corporation. All rights reserved./out:test2.exe/manifest/LIBPATH:C:\GnuCobol\build_windows\win32\releaselibcob.libC:\Users\shinoda\AppData\Local\Temp\cob14512_0.objReturn status: 0Executing: mt /manifest "test2.exe.manifest"/outputresource:"test2.exe";#1Microsoft (R) Manifest Tool version 6.1.7716.0Copyright (c) Microsoft Corporation 2009.All rights reserved.Return status: 0
おお!!
正常終了したぞ!!
C:\GnuCobol\bin>dirドライブ C のボリューム ラベルがありません。ボリューム シリアル番号は E476-CFF0 ですC:\GnuCobol\bin のディレクトリ2016/01/10 13:26 <DIR> .2016/01/10 13:26 <DIR> ..2015/12/29 08:12 11,776 CBL_OC_DUMP.dll2015/12/29 08:01 560,640 cobc.exe2015/12/29 08:01 10,752 cobcrun.exe2015/12/29 08:01 211,968 libcob.dll2014/06/20 23:34 78,848 libvbisam.dll2014/08/28 04:45 462,848 mpir.dll2014/08/28 05:32 154,624 pdcurses.dll2016/01/09 22:28 168 test2.cob2016/01/10 13:26 7,168 test2.exe9 個のファイル 1,498,792 バイト2 個のディレクトリ 765,126,201,344 バイトの空き領域
おお!!
素晴らしい。test2.exe できてるやん!
早速実行してみる!!
C:\GnuCobol\bin>test2Hello World!
おお!!!無事実行できましたぞ!!
こんにちわ!!世界!!
というわけで、GnuCOBOL(OpenCOBOL)でちょっとしたテストくらいは出来そうですなあ。
まあ、この COBOL 案件自体、まだ受注したわけでもなんでもないんで、単に休日の1日を無駄にしただけかもしれませんが(笑)
しかし、これ、COBOL しか使えないようなおっさんプログラマが自宅の Windows 機に環境作ろうと思ったらおおごとやで(笑)
VisualStudio とか入れてないと駄目やし(笑)
コメントする