SystemC Visual C++2008 Express EditionでのHello World!!!
SystemCライブラリのインストールが完了したら、やっぱりまずはハロー プログラムでしょう。
プロジェクトの作成から設定の仕方、「Hello, SystemC!!!」と表示させるまでの流れをここで説明する。
プロジェクトの作成から設定の仕方、「Hello, SystemC!!!」と表示させるまでの流れをここで説明する。
ここで、SystemCのバージョンは2.2.0で、インストール先はC:\systemc-2.2.0として説明する。
SystemCライブラリの生成方法がわからない場合はこちらを参照。
SystemCライブラリの生成方法がわからない場合はこちらを参照。
プロジェクト作成
- ファイルから新規作成→プロジェクトを選択。

- 新しいプロジェクト ウィンドウで、プロジェクトの種類をVisual C++のWin32を選択して、Win32コンソール アプリケーションを選ぶ。
- 各項目を設定
- プロジェクトファイル名:Hello01
- 場所:C:\systemc-2.2.0\MySrc
- ソリューション:新しいソリューションを作成する
- ソリューションのディレクトリを作成のチェックボックスは解除(付けない)
- 設定が完了したらOKをクリック。

- 次へをクリック。

- アプリケーションの設定
- コンソール アプリケーションを選択
- 追加のオプションは、空のプロジェクトをチェック
- 完了をクリック。

プログラム準備
- 作成したプロジェクトのフォルダに、プログラム「Hello01.cpp」を準備する。準備方法はどのようにでもかまわない。(ファイル→新規作成→ファイル から作っても良いし、メモ帳で作ってもよい)

- 作成したプログラムは、プロジェクトのソースファイルとして登録する。登録の仕方はツリー上のソースファイルを右クリックして「追加→既存の項目」で選択してもよいし、ファイルをDrag&Dropで追加してもよい。

- hello01.cpp
#include <systemc.h>
int sc_main( int argc, char* argv[] )
{
printf( "Hello, SystemC!!!\n" );
return 0;
}
プロジェクトの設定(プロパティ設定)
- メニュのプロジェクトからプロパティを選択。

- 全般の構成の種類は、アプリケーション(.exe)であることを確認する。

- C/C++の追加のインクルード ディレクトリに、"C:\systemc-2.2.0\src\"を追加する。

- C/C++の簡易リビルドを行なうは"いいえ"を選択。
- C/C++のランタイム ライブラリは"マルチスレッド デバッグ(/MTd)"を選択。(SystemC.libの作成時と同じ設定でなければならない)

これで、プロパティの設定は完了。
SystemCライブラリの追加
- SystemCライブラリをDrap&Dropでプロジェクトのソースファイルに追加する。プロパティとして設定もできるが、面倒くさかったので今回これで済ませた。

コンパイル(ビルド)
- メニューのビルドからソリューションのビルドを選択。

- コンパイルが正常に完了したことを確認する。

実行
- メニュのデバッグからデバッグなしで開始を選択。するとコマンドプロンプトが実行されるはず。

- コマンドプロンプト上に「Hello, SystemC!!!」が表示されたら成功!!

終わり。
もしも、コンパイルでこんなエラーがでたら
リンク時に次のようなエラーが出た。
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __heap_alloc は既に LIBCMT.lib(malloc.obj) で定義されています。 1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __recalloc は既に LIBCMT.lib(recalloc.obj) で定義されています。 ・・・
C/C++のコード生成で、ランタイム ライブラリの選択が誤っている可能性がある。
ランタイムライブラリの設定はSystemC.lib生成時とプログラムのコンパイル時で合わせないといけない。
今回のエラーでは、SystemC.lib生成時に"マルチスレッド (/MT)"を選択して、プログラムのコンパイル時に、"マルチスレッド デバッグ(/MTd)"を選択したことが原因。
VC初心者の私は、このエラーにかなり悩まされた。
ランタイムライブラリの設定はSystemC.lib生成時とプログラムのコンパイル時で合わせないといけない。
今回のエラーでは、SystemC.lib生成時に"マルチスレッド (/MT)"を選択して、プログラムのコンパイル時に、"マルチスレッド デバッグ(/MTd)"を選択したことが原因。
VC初心者の私は、このエラーにかなり悩まされた。
以上