Everything

 

-hide


最適化リンケージエディタ(rlink)・オプション / その他オプション

[指定形式]

-hide

 

[詳細説明]

-

本オプションを指定した場合、出力ファイル内のローカルシンボル名情報を消去します。

-

ローカルシンボルに関する名前の情報が消去されますので、バイナリエディタなどでファイルを開いてもローカルシンボル名は確認できなくなります。生成されるファイルの動作への影響は一切ありません。

-

ローカルシンボル名を機密扱いにしたい場合などに本オプションを指定してください。

-

秘匿対象となるシンボルの種類を以下に挙げます。

-

ソースファイル:static型修飾子を指定した変数名、関数名など

-

ソースファイル:goto文のラベル名

-

アセンブリソース:外部定義(参照)シンボル宣言していないシンボル名

-

* エントリ関数名は秘匿対象になりません。

[例]

-

ソースファイルで本オプションの機能が有効となる記述の例を以下に示します。

int g1;
int g2=1;
const int g3=3;
static int s1;           //<--- static変数名は秘匿対象
static int s2=1;         //<--- static変数名は秘匿対象
static const int s3=2;   //<--- static変数名は秘匿対象
 
static int sub1()        //<--- static関数名は秘匿対象
{
    static int s1;       //<--- static変数名は秘匿対象
    int l1;
    
    s1 = l1; l1 = s1;
    return(l1);
}
 
int main()
{
    sub1();
    if (g1==1)
        goto L1;
    g2=2;
L1:                      //<--- goto文のラベル名は秘匿対象
    return(0);
}

[備考]

-

本オプションは出力ファイル形式がabsolute,relocate,libraryの場合のみ有効です。

-

コンパイル、アセンブル時にgoptimizeオプションを指定したファイルを入力する場合、出力ファイル形式がrelocate,libraryの場合は本オプションを指定できません。

-

外部変数アクセス最適化を行う状況で本オプションを指定する場合は、一度目のリンク時には指定せず、二度目のリンク時にのみ本オプションを指定してください。

-

デバッグ情報内のシンボル名は、本オプションを指定しても削除されません。