同一プロジェクトで、同一オブジェクトが生成されないときの確認

テクニカル・ノート 181207J

アーキテクチャ:

All

コンポーネント:

general

更新日:

2018/12/18 7:03

はじめに

Embedded Workbenchは、同じファイルで構成されるプロジェクトを別のPCでビルドした場合でも、まったく同じオブジェクトが作成されます。もし、同一プロジェクトで、同一オブジェクトが生成されない場合は、同じファイルをビルドしているかどうか、下記の手順で確認してください。

もし、違いが見つからない場合は、Embedded Workbenchの問題点として調査いたしますので、ご使用中のプロジェクトの情報のご提供をご検討ください。

解説

同一プロジェクトでビルドしたオブジェクトが異なる場合、下記を確認してください。

 

  1.  PC内のファイルを絶対パスで参照していないか
    絶対パスで参照しているファイルがある場合、プロジェクトをフォルダごと移動すると、結果として別のファイルを参照し、ビルドしてしまうことがあります。

プロジェクトに含まれるファイルは、原則、プロジェクトファイル (.ewp)からの相対パスでファイルを記憶していますが、保存先のドライブが違う場合は、絶対パスで探します。

インクルードファイルは、サーチフォルダの順に探されます。

プロジェクト(Project) > オプション(Options) > C/C++ コンパイラ(C/C++ compilier) > プリプロセッサ(Preprocessor) タブ

または

プロジェクト(Project) > オプション(Options) > アセンブラ(assembler) > プリプロセッサ(Preprocessor) タブ

 

インクルードファイルは、ファイル名が" "で囲まれている場合、ソースファイルが存在するフォルダを探したあと、デフォルトでは、Embedded Workbenchのアクティブな製品のインストールフォルダの下のincフォルダから探します。

 

リンカコマンドファイルは、

プロジェクト(Project) > オプション(Options) > リンカ (Linker)> 設定 (Config)タブの リンカ設定ファイル(Linker command file)

のところで決定します。

 

  1. PC自体の情報を参照している箇所がないか
    その他、ビルド毎に違うオブジェクトが作られる要因としては、(__DATE__)のような、PC自体の情報を参照している場合があります。

 

  1. ファイルの位置情報を参照している箇所がないか
    その他、PCの環境により違うオブジェクトが作られる要因としては、 (__FILE__) のような、フォルダの位置情報を参照している場合があります。

 

まとめ

社内用共用ファイルなど、特別な場合を除き、特定のフォルダにプロジェクトを構成する全てのファイルを格納できたほうが、管理上楽であると考えられます。このことを考慮して、Embedded Workbenchでは、$PROJ_DIR$と、$TOOLKIT_DIR$という記法が用意されています。$PROJ_DIR$は.ewpファイルのあるフォルダ、$TOOLKIT_DIR$はEmbedded Workbenchのアクティブな製品のフォルダを表します。

 

全ての製品名は、それぞれの所有者の商標または登録商標です

 

申し訳ございませんが、弊社サイトではInternet Explorerをサポートしていません。サイトをより快適にご利用いただくために、Chrome、Edge、Firefoxなどの最新ブラウザをお使いいただきますようお願いいたします。