Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。前回まではメイン処理プログラムのみだったので、コンパイルはコマンドで直接実行型ファイルを作成する方法にとどめていました。今回は、複数のプログラムをコンパイルするので、手順が若干異なります。実行型ファイルを作成するコンパイルコマンドソースファイルからオブジェクトファイルを作成せずに、直接実行型ファイルを作成するコンパイルコマンドは次のとおりです。連携先プログラムソースファイル名-oスイッチと実行ファイル名は省略することが出来ます。その場合は、メイン処理プログラムソースファイル名からOpenCOBOLソースファイルの拡張子である「.cob」が除かれたファイル名で、実行ファイルが作成されます。連携先プログラムが複数ある場合は、対象の連携先プログラム全てのソースファイル名を指定します。メイン処理プログラムソースファイル名を「mainprog.cob」、連携先プログラムソースファイル名をそれぞれ「subprog1.cob」「subprog2.cob」、実行ファイル名を「progexe」とした場合のコンパイルコマンド例は次のとおりです。subprog2.cobソースファイルの規模が小さく、ソース数が少ない場合は、直接実行型のコンパイルで十分に対処できます。各ソースの規模が大きく、多数の連携先プログラムソースがある場合、1つのソース変更だけでも、全てのソースを取り込んでコンパイルするなど、マシンパワーを著しく消費します。それゆえ、次項で説明する分割コンパイルがお勧めです。分割コンパイルによる実行型ファイルの作成方法ソースファイルからオブジェクトファイルを作成し、最後に実行型ファイルを作成するコンパイルコマンドについて説明します。メイン処理プログラムのコンパイル方法メイン処理プログラムのコンパイルコマンドは次のとおりです。前項のコンパイルコマンドと相違しているのは、-cスイッチが付いていることです。-cはソースファイルをコンパイルしてオブジェクトを生成するスイッチです。前項と同様、-oスイッチは省略することができます。その場合、メイン処理プログラムソースファイル名からOpenCOBOLソースファイルの拡張子である「.cob」が除かれ、代わりに「.o」拡張子が付いたファイル名でオブジェクトファイルが作成されます。メイン処理プログラムソースファイル名を「mainprog.cob」、オブジェクトファイル名を「mainobj.o」とした場合のコンパイルコマンド例は、次のようになります。mainprog.cobメイン処理プログラム以外のコンパイル方法メイン処理プログラム以外、すなわち連携先プログラムのコンパイル方法は次のとおりです。ソースファイル名メイン処理プログラムコンパイルコマンドとの相違は、-xスイッチを付けないことだけです。-oスイッチとオブジェクトファイル名を省略することもできます。ソースファイル名を「subprog.cob」、オブジェクトファイル名を「subobj.o」とした場合のコンパイルコマンド例は、次のようになります。subprog.cob実行型ファイルの作成メイン処理プログラムと連携先プログラムのコンパイルが終了し、実行型ファイルを作成する場合のコマンドは、次のとおりです。その他のオブジェクトファイル名ソースファイル名で指定するのではなくオブジェクトファイル名で指定する点を除けば、先に説明した「直接実行型ファイルを作成するコンパイルコマンド」と同じ内容です。「その他のオブジェクトファイル名」が複数ある場合は、複数指定します。メイン処理プログラムのみで連携先プログラムが無い場合は、その他のオブジェクトファイル名のパラメータは指定しません。メイン処理プログラムオブジェクトファイル名を「mainprog.o」、その他のオブジェクトファイル名を「subprog1.o」「subprog2.o」、実行ファイル名を「progexe」とした場合のコンパイルコマンド例は、次のとおりです。何しているとこなの??実はIT屋さんだったりします(笑)Linux基盤各種サービスの設計構築およびコンサルティングをやっています。ブログもちょこちょこっと書いてます。プラットフォームチームの意義と実践のポイント1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。プラットフォームチームの意義と実践のポイント1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。プラットフォームチームの意義と実践のポイント1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。