LoginSignup
0
0

More than 5 years have passed since last update.

SystemCでカーネルをカスタマイズするときに役に立つ技

Posted at

こんばんは@pasonatsutanです。参加者の皆様がHDLバリバリなので、gkbrですが、ぼくは、HDLのことはほとんど知らないので、臆せずにsystemc寄りの記事を書いていきたいと思います。

SystemCを自分用にコンパイルする

SystemCを使っていると、自分用にシミュレータに手を入れたくなりますよね。その時、元のSystemCの環境と手を入れたSystemCの環境を間違えてリンクしてしまうかもしれません。そんなときは、systemc-2.3.0/src/sysc/kernel/sc_ver.h の文字列を書き換えてSystemCをコンパイルしましょう。

systemc-2.3.0/src/sysc/kernel/sc_ver.h
#define SYSTEMC_2_3_0
#define SC_API_VERSION_STRING sc_api_version_2_3_0_custom //ここを好きな文字列に

間違えてinclude、もしくは linkすると

include しているヘッダーファイルと、リンクしようとしているライブラリのバージョンが違うときはこのようなエラーがでます。

g++ -o test.exe -L. -L../lib-cygwin -lsystemc -lm  test.o /lib/libtcl.a
test.o:test.cpp:(.text+0x34): `sc_core::sc_api_version_2_3_0_custom::sc_api_version_2_3_0_custom()' に対する定義されていない参照です
collect2: ld はステータス 1 で終了しました
Makefile:15: recipe for target `test.exe' failed
make: *** [test.exe] Error 1

逆にいうと、普通にSystemCを使っていてこのようなエラーが出たときは、インクルードしているバージョンと、リンクしているバージョンが違います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0