/SECTION
(セクションの属性の指定)
/SECTION:
name
,
[[!
]{D
|E
|K
|P
|R
|S
|W
}][,ALIGN=
number
]
解説
/SECTION
オプションを指定すると、セクションの属性が変更され、そのセクションの .obj
ファイルがコンパイルされたときにその属性がオーバーライドされます。
実行可能 (PE) ファイルの "セクション" は、コードまたはデータのいずれかを含む、名前付きの連続したメモリのブロックです。 一部のセクションには、プログラムで宣言して直接使用するコードまたはデータが含まれています。 その他のデータ セクションは、リンカーおよびライブラリ マネージャー (LIB) によって自動的に作成され、オペレーティング システムにとって重要な情報が含まれています。 詳細については、PE 形式に関するページを参照してください。
コロン (:
) とセクションの名前 name
を指定します。 name
では大文字と小文字が区別されます。
次の名前は標準名と競合するため、使用しないでください。 たとえば、.sdata
は RISC プラットフォームで使用されます。
.arch
.bss
.data
.edata
.idata
.pdata
.rdata
.reloc
.rsrc
.sbss
.sdata
.srdata
.text
.xdata
セクションに 1 つ以上の属性を指定します。 以下に示す属性文字では、大文字と小文字は区別されません。 セクションに含めるすべての属性を指定する必要があります。 属性文字を省略すると、その属性ビットはオフになります。 R
、W
、または E
を指定しない場合、既存の読み取り、書き込み、実行可能状態は変更されません。
属性を否定するには、その文字の前に感嘆符 (!
) を付けます。 属性文字の意味を次の表に示します。
文字 | Attribute | 意味 |
---|---|---|
E |
実行 | セクションが実行可能である |
R |
読み込み | データの読み取り操作を有効にする |
W |
書き込み | データの書き込み操作を有効にする |
S |
共有済み | イメージを読み込むすべてのプロセス間でセクションを共有する |
D |
破棄可能 | セクションを破棄可能としてマークする |
K |
キャッシュ可能 | セクションをキャッシュ不可としてマークする |
P |
ページング可能 | セクションをページング不可としてマークする |
K
と P
は、それらに対応するセクション フラグが負の意味で使用されるという意味で通常とは異なります。 そのいずれか 1 つを /SECTION:.text,K
オプションを使用して .text
セクションに指定する場合、/HEADERS
オプションを指定して DUMPBIN
を実行するときとセクション フラグに差異はありません。そのセクションは既に暗黙的にキャッシュされています。 既定値を削除するには、代わりに /SECTION:.text,!K
を指定します。 DUMPBIN を指定すると、"Not Cached" などのセクションの特性が明らかになります。
E
、R
、W
が設定されていない PE ファイル内のセクションは、おそらく無効です。
ALIGN=
number
引数を使用すると、特定のセクションの配置値を指定できます。 number
引数はバイト単位で、2 の累乗である必要があります。 詳細については、/ALIGN
を参照してください。
Visual Studio 開発環境でこのリンカー オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳しくは、「コンパイラとビルドのプロパティを設定する」をご覧ください。
Configuration Properties>Linker>General プロパティ ページを選択します。
Specify Section Attributes プロパティを変更します。 [OK] または [適用] を選択して、変更内容を保存します。
このリンカーをコードから設定するには
- 以下を参照してください。AdditionalOptions