bambooflow Note

HelloWorld

最終更新:

Bot(ページ名リンク)

- view
メンバー限定 登録/ログイン

SystemC Visual C++2008 Express EditionでのHello World!!!

SystemCライブラリのインストールが完了したら、やっぱりまずはハロー プログラムでしょう。
プロジェクトの作成から設定の仕方、「Hello, SystemC!!!」と表示させるまでの流れをここで説明する。

ここで、SystemCのバージョンは2.2.0で、インストール先はC:\systemc-2.2.0として説明する。
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 VCEE VC++2008EE
記事メニュー
ウィキ募集バナー