SHCライブラリに含まれるパス情報の除去について

こんにちは

 

ライブラリに含まれるソースコード/オブジェクトファイルのパスを除去する方法を探しています。

 

 

HEWにて、ユーザーライブラリ(*.lib)を作成していまして、

ライブラリ自体は生成出来、対象の実行プロジェクトにリンクして動作確認が出来ています。

 

ただ、

生成したライブラリファイルを、バイナリエディタで開いてみると、

ライブラリに含まれるオブジェクトファイル、及びそのソースコードのビルド時の絶対パスが含まれていました。

例)

 C:\Workspace\AAA\AAA\xxx.c

 

 C:\Workspace\AAA\AAA\Release\xxx.obj

 

これらの情報を除去したいと思い、

一通りビルドオプションを変えてみたつもりなのですが、消す事が出来ませんでした。

ご存知の方がいましたらご教授頂けないでしょうか?

 

※デバッグ情報出力はOFFにしているつもりです。

※リンクでstripを入れたところ、以下のエラーが出ました。

L1002 (W) Option "input" cannot be combined with option "strip,form=library"
L3002 (F) Option "form=library" is ineffective without option "library"

 

コンパイラオプション:

-cpu=sh3dsp -endian=little -object="$(CONFIGDIR)\$(FILELEAF).obj" -gbr=auto -chgincpath -errorpath -global_volatile=0 -opt_range=all -infinite_loop=0 -del_vacant_loop=0 -struct_alloc=1 -nologo

 

最適化リンカオプション:

-noprelink -form=library -nomessage -list="$(CONFIGDIR)\$(PROJECTNAME).lbp" -nologo -output="$(CONFIGDIR)\$(PROJECTNAME).lib" -exit

 

環境:

High-performance Embedded Workshop(Version 4.09.01.007)

C/C++ compiler package for SuperH RISC engine family V.9.04 Release 03 (7-10-2017 19:12:13)

SH3-DSP

Parents Reply Children
  • fujita nozomu さん

    アドバイスありがとうございます。
    そうですね。余分なパスが出ないようにはしようと思います。
  • shneさん、こんにちは。NoMaYと申します。

    最近のWindowsであればシンボリックリンクコマンド(MKLINK)の方が動作が安定しているかと思います。(以前は管理者権限が無いと実行出来ませんでしたが、確かWindows10の最近の版では管理者権限が無くても実行出来るようになった、と何かで読んだ記憶があります。) (新たにドライブを作ることは出来ませんが、、、)

    ディレクトリだけでなくファイルのシンボリックリンクも作れます。なので、バージョン管理システム上は従来のソースファイル名のまま、シンボリックリンクで何をするのか分からないようなソースファイル名にして、HEW上では何をするのか分からないソースファイル名でライブラリファイルを作るといったことも出来るかと思います。(他方、ディレクトリのシンボリックリンクでは個人情報/企業情報/顧客情報/リビジョン情報とかがパス名としてうっかりライブラリファイルに入ってしまうのを防ぐことが出来ますね。) (その反面、手違いが起きる可能性も増えますが、、、)