目次
はじめに
この記事の目的・内容
これは、初めてプログラミングに触れる人が河川シミュレーションソフトウェア「iRIC_v4」のNays2DH(ソースコードはこちら)を自らの手で改良し、実行可能にすることができるように基礎知識と手順を記すシリーズ記事の一部である。
前回記事で、プログラムを動かす仕組みについて学んだ。今回はIDEのVisual Studioを遣いながら、実際にプログラムを動かしてみる。
この記事ではVisual Studioの特徴に触れながら、自分の手で改良したNays2DHのソースコードをビルドすることができるように適切に環境設定をする方法を解説する。
前提
シリーズで一貫して、以下のような環境を想定する。
- 言語:Fortran
- IDE:Visual Studio 2022
- コンパイラ:Intel Fortran Compiler Classic (ifort), Intel(R) Fortran Compiler (ifx)
- OS: Windows
Fortranの開発環境は、こちらの記事の方法で構築している。
Visual Studioとは
Visual Studioの機能
Visual Studioは、マイクロソフト社が開発した、ソースコードを編集するコードエディタ、ソースコードを機械が解読可能なオブジェクトファイルに翻訳するコンパイラ、オブジェクトファイルを他のライブラリと結合してアプリケーションを生成するリンカ、アプリケーションで発生した不具合の原因を探すデバッガ― を一つにまとめた、IDE(統合型開発環境) の一種である。
様々なIDEがある中でもVisual Studioは、多言語に対応し、拡張機能が豊富で、デバック機能が充実し、Gitなどと統合することでチーム開発もスムーズに行うことができる点に強みを持つ。Windowsにのみ対応し、他のOSでは使うことができない点には注意が必要である。
Visual Studioでのプログラムの開発
大まかな流れ
Visual Studioを用いたプログラムの開発は、一般に下の図のような手順で行われる。
- プロジェクト、ソリューションの作成:Visual Studioでソースコードを編集しビルドするためには、ソリューション・プロジェクトを作り、そこに編集したいソースコードを格納する必要がある。
- コーディング:Visual Studioのエディタを使って、プログラムのロジックを記述する。
- ビルド:ソースコードをコンパイルして実行可能なファイルを生成する。プロジェクトのプロパティを設定し、ビルドを実行する。
- テスト:生成された実行ファイルをテストし、期待通りに動作するか確認する。
- デバック:プログラムの不具合を修正する。Visual Studioのデバッガを使って、ステップ実行や変数の監視を行う。
- デプロイ:最終的な実行ファイルを動作させる環境に配置して利用できるようにし、配布する。
本記事では、「1.プロジェクト・ソリューションの立ち上げ」と「3.ビルド」について扱う。「2.コーディング」、「4.テスト」、「5.デバック」については、別の記事で触れる。「6.デプロイ」に関しては、今回のシリーズ記事は、iRIC Softwareという既存のアプリに対してその一部を改良することを目的としていることから扱わないものとする。
プロジェクト、ソリューションの作成
プロジェクト、ソリューションとは何か
Visual Studioでは、ソースコードをアプリケーションの構成単位であるプロジェクトに格納し、ソリューションと呼ばれるコンテナのようなものでプロジェクトを整理する。
プロジェクト、ソリューションの作り方
-
ソースコードをリモートからローカルにクローンする
下準備として、リモートにあるNays2DHのソースコードをローカルにクローンする。例えばこちらの記事のような方法で行うことができる。
-
空のプロジェクトを作る
Visual Studioを開き、「新しいプロジェクトの作成」を選択する。その先で表示されるプロジェクトテンプレートの一覧からfortranの「Empty Project」を選ぶ。Visual StudioではデスクトップアプリやWebアプリなど、様々なアプリを開発できるが、今回開発をするのはコンソールアプリであるので、「Console」と表記のあるものを選ぶ。
プロジェクト名と保存場所を指定して「作成」をクリックする。
最初のプロジェクトを作ると、そのプロジェクト(プロジェクト名.vfproj
)とそれを含むソリューション(ソリューション名.sln
)が指定したディレクトリに自動的に生成される。また、ビルドの結果を格納するソリューションフォルダも生成される。 -
既存のコードを格納する
メニューから「表示」→「ソリューションエクスプローラー」を開く。プロジェクトを選択して右クリックし、「追加」→「既存の項目」を選択する。追加したいファイルを選択して「追加」をクリックする。Nays2DHの場合、
iric.f90
、Nays2DH.f90
ファイルを追加すればよい。
これで、任意のコードが編集できるようになる。
Visual Studioでのビルド
ビルドの関わるプロジェクトのプロパティを設定
自分で編集したソースコードが実行ファイルになるまでのプロセスで参照すべき箇所をプロジェクトのプロパティで設定していく。プログラムが実行ファイルになるまでにどのような処理が行われているかについては、前回の記事に記した。
プロジェクトのプロパティの設定
ビルドに関するオプションは、プロジェクトのプロパティより設定できる。
ソリューションエクスプローラーでプロジェクトを右クリックし、「プロパティ」を選択する。
-
構成・プラットフォームのオプションを設定
「構成」ではビルド時にDebugとReleaseどちらに最適化された構成にするかを選ぶ。
「プラットフォーム」はビルド、実行をするとなる環境に合わせて選ぶべきオプションである。現在(2024年)に一般的に流通している64bit CPUを用いて動作させる場合はx64を選ぶ。32bit CPUで動作させる場合はx86を選択する。
構成、プラットフォームは「すべての構成」、「すべてのプラットフォーム」にしておく。
デバッグモードとリリースモードの違い
ビルドには「Debug」と「Release」の2つのモードがある。違いは以下の通り。目的によって使い分ける。
モード 目的 デバッグ情報 最適化 サイズ エラーチェック デバッグモード コードの間違いやバグを発見しやすくする 含まれており、ステップ実行や変数の監視が可能 行われない 実行ファイルのサイズが大きくなる 詳細なエラーチェック リリースモード 最終的な製品として配布する 含まれていないため、ステップ実行や変数の監視は不可 行われる 実行ファイルのサイズが小さくなる デバッグモードほど詳細なエラーチェックは行われない ::
-
リンカの設定
左側のメニューから「Fortran」→「Linker」→「Input」から、使用する静的ライブラリのパスを指定する。これでプログラム内で用いられる標準関数が、リンクのときに正しくプログラムに結び付けられる。
これでプロジェクトのプロパティ設定が完了し、ビルドの準備が整う。
絶対パス(フルパス)とは、指定したディレクトリまでのパスをルートディレクトリから記述することで、ファイルやディレクトリの位置を一意に特定するパスである。
例:C:\Users\Username\program\program.exe
相対パスとは現在の作業ディレクトリ(カレントディレクトリ)からの相対的な位置を示すパスである。
例:..\program\program.exe
絶対パスで記述してしまうと、人によって親ディレクトリの名称が違うために動かなくなってしまうことが多いが、相対パスで記述しておくと、他人にプログラムを渡したときにそのまま動かすことができて便利である。
ビルド
メニューバーの「ビルド」よりビルドを行うことができる。ソリューション単位またはプロジェクト単位でビルドを行う。ビルドが完了すると、出力ウィンドウに結果が表示される。ビルドに成功した場合、実行ファイルが指定した出力フォルダに生成される。
参考文献
- ナルボ. 第2版VisualStudioパーフェクトガイド. 2024. 技術評論社.