SystemCのデータ型だけ利用する

このやり方はたぶん推奨されていないと思いますので、
使う際は自己責任で。

C/C++プログラミングにおいてSystmeCのデータ型だけ
使いたいことがたぶんあると思います。

  • サンプルコード(main.cpp)
#include <stdio.h>
#include <systemc.h>

int main (int argc, char* argv[]) {

  sc_uint<8> a,b;
  sc_uint<9> c;

  a = 2; b = 30;
  c = a + b;

  cout << "a = " << a.to_string() 
       << ", b = " << b.to_string() 
       << ", c = " << c.to_string()
       << endl; 

  return 0;
}

このコードをコンパイル、リンカすると次のようなエラーが出ると思います。
(出なかった場合は普通に使えますね!)

//libsystemc.so: undefined reference to `sc_main'
collect2: ld returned 1 exit status

※ Install Directory : SystemCがインストールされている場所
※ Arch : lib-linux or lib-linux64 などになると思います。(Linuxの場合)

で、このようにコンパイル、リンカするとエラーが解消されます。

$> g++ $(FLAGS) main.cpp -o main $(SYSTEMC_LIB_DIR)/libsystemc.a

※ SYSTEMC_LIB_DIR : <Install Directory>/<Arch> です。
これで、「main」という実行形式が出来るので実行してみると、

$> ./main 
a = 2, b = 30, c = 32

という形で実行出来ました!