HEWで複数プロジェクトで共通して使うファイルのこと

 設定の仕方が悪いのか、HEWの制限なのかはわからないまま。

 HEWで、ワークスペースとプロジェクトを作成する場合、HEWのワークスペースディレクトリの下にワークスペース名のディレクトリが作られ、その下にプロジェクト名のディレクトリが作られるのがデフォルトになっている。

 HEWでは、複数の CPUを1つのワークスペースで扱うことができない。

 うちでは、SH7144F(SH2)と SH7211(SH2A)を使っている。

 まあ、そういう事情で、CPUそれぞれで2つのワークスペースを作るしかない。(と思う)

 うちの社内ライブラリには、標準 Cによる共通ライブラリと、ハードウェア依存ライブラリの2種類がある。
 このうち、共通ライブラリをそれぞれの CPUでコンパイルし直してやらなければならないのだが、ソースコードは1つに統合しておきたい。まあ、当たり前の要望だ。
 で、ハードウェア依存ライブラリの方も、機能的にはほとんど同じで、それぞれのハードウェアの違いをライブラリ内で吸収するように作っている。これも当たり前の作り方だ。

 で、これらのライブラリのインクルードファイルなどは1つの社内用インクルードディレクトリに入れてあり、SHC_INCにて設定している。場所は HEWのワークスペースディレクトリの下に includeディレクトリを作っている。
 また、できたライブラリは、これも HEWのワークスペースディレクトリの下に、ディレクトリ「libSH7144F」とか「libSH7211」を作って入るようにしている。

 普通に考えると、ここで普通に新しくワークスペース(例えば違うCPU用)をつくって、この時に HEWのワークスペースの下に、作ったワークスペース名のディレクトリが作られて、その下にプロジェクトディレクトリが作られて、そのプロジェクトに共通ライブラリのソースファイルを追加して、コンパイルしてやれば、コードのエラー以外は問題なくコンパイルされて、新しいライブラリが作成される、はずだったのだが。
 実際は、そうやって作ると、インクルードファイルがインクルードされない。依存関係の作成中にファイルが見つからないとか読めないとかいうエラーが発生する。
 困ったことに、HEWのワークスペース直下にプロジェクトディレクトリが来るように変更してやると、これが問題なくコンパイルできたりする。
 つまり、以下のような構造である。
-------------------
[駄目な時]
HEWワークスペース
C:\Workspace\
includeディレクトリ
C:\Workspace\include\
libディレクトリ
C:\Workspace\lib\
ワークスペースとプロジェクト
C:\Workspace\workspace\
C:\Workspace\workspace\project\
-------------------
[うまくいく時]
HEWワークスペース
C:\Workspace\
includeディレクトリ
C:\Workspace\include\
libディレクトリ
C:\Workspace\lib\
ワークスペースとプロジェクト
C:\Workspace\
C:\Workspace\project\
-------------------
 何故なのかわからない。
 理由もわからない。
 ファイルの登録で相対パスを絶対パスに変えればいけるのか?検証する余裕がないので未検証である。

 とりあえず、相対パスとして1つまでは乗り越えられるけど2つ以上は駄目なんだ、と思うことにする。
 ディレクトリ構造的に困ったちゃんになるし、バックアップもしにくいが、HEWで開発するのなら仕方がないということにして、備忘録とする。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック

  • SHC_INCは効いていない?

    Excerpt:  今日、unsigned shortの異常の際に HEWの再インストールとかしたので、一部の以前のツールチェインがインストールされていないという状態になった。 Weblog: SDJ Weblog racked: 2009-06-03 10:25