FAQ 1011645 : プログラム中のシンボル情報を秘匿する方法を教えてください。

Q: 質問

プログラム中のシンボル情報を秘匿する方法を教えてください。


A: 回答

・ローカル・シンボルの場合
リンクオプションの-hideを指定いただくことで、ロードモジュールファイル(*.abs)/ライブラリファイル(*.lib)/リロケータブルファイル(*.rel) 内にある、static型修飾子を指定した変数名、関数名などの情報を秘匿することができます。

-hideオプションを指定して作成したライブラリファイルをリンクし、
リンク・マップ・ファイル(*.map)を出力した場合、
ローカルシンボルの情報は、$CNCL_XXなどの文字列に置き換えられて表示されます。
-hideオプションを指定した場合は、プログラム中の全てのローカルシンボルが秘匿対象となります。
なお、-hideオプション指定時の*.mapファイル上にはシンボル情報が出力されます。

・外部シンボルの場合
-deleteオプションを指定いただくことで、外部シンボルをローカルシンボルに変換することができます。-deleteオプションを指定してリンクしたライブラリファイルをリンクした場合、リンク先のプロジェクトからは当該変数を参照できません。
なお、リンク・マップ・ファイル上にはローカルシンボルとして出力されますので、これを秘匿する場合は、
ライブラリファイル生成時に-hideオプションをご指定ください。

 

 

適用製品

SuperHファミリ用C/C++コンパイラパッケージ
RH850ファミリ用Cコンパイラパッケージ
RXファミリ用C/C++コンパイラパッケージ
RL78ファミリ用Cコンパイラパッケージ
他にご質問がございましたら、リクエストを送信してください