/SECTION(指定节属性)

更新:2007 年 11 月

/SECTION:name,[[!]{DEKPRSW}][,ALIGN=#]

备注

/SECTION 选项更改节的属性,当节的 .obj 文件被编译时重写属性集。

可移植可执行 (PE) 文件中的节大致等效于新的可执行 (NE) 文件中的段或资源。节包含代码或数据。与段不同,节是连续内存的块,没有大小限制。有些节包含程序声明和直接使用的代码或数据,而有些数据节是由链接器和库管理器 (lib.exe) 创建的,包含了对操作系统来说至关重要的信息。有关 NE 文件的更多信息,请参见知识库文章“Executable-File Header Format”(Q65122)。可以在 MSDN Library 中或 https://support.microsoft.com/default.aspx?ln=zh-cn 上找到知识库文章。

指定冒号 (:) 和节 namename 区分大小写。

不要使用以下名称,因为它们与标准名称冲突。例如,.sdata 用在 RISC 平台上:

  • .arch

  • .bss

  • .data

  • .edata

  • .idata

  • .pdata

  • .rdata

  • .reloc

  • .rsrc

  • .sbss

  • .sdata

  • .srdata

  • .text

  • .xdata

为节指定一个或多个属性。以下列出的属性字符不区分大小写。必须指定您希望节具有的所有属性;省略的属性字符将导致该属性位被关闭。如果不指定 R、W 或 E,则现有的读、写或可执行状态保持不变。

若要取反属性,请在属性字符前使用一个感叹号 (!)。属性字符的含义如下所示:

字符

属性

含义

E

Execute

节是可执行的

R

Read

允许对数据进行读取操作

W

Write

允许对数据进行写操作

S

Shared

在所有加载图像的进程中共享节

D

Discardable

将节标记为可放弃

K

Cacheable

将节标记为不可缓存

P

Pageable

将节标记为不可分页

K 和 P 比较特殊,因为与其对应的节标志表示相反的含义。如果在 .text 节 (/SECTION:.text,K) 上指定它们之中的一个,当运行带 /HEADERS 选项 Dumpbin 时在节标志中将没有区别;它已被隐式缓存了。若要移除默认值,请指定 /SECTION:.text,!K,DUMPBIN 将显示节特性,包括“未缓存。”。

没有设置 E、R 或 W 的 PE 文件中的节可能无效。

ALIGN*=#* 使您得以为特定的节指定对齐值。有关更多信息,请参见 /ALIGN

在 Visual Studio 开发环境中设置此链接器选项

  1. 打开此项目的“属性页”对话框。有关详细信息,请参见设置 Visual C++ 项目属性

  2. 单击“链接器”文件夹。

  3. 单击“命令行”属性页。

  4. 将该选项键入“附加选项”框中。

以编程方式设置此链接器选项

请参见

参考

设置链接器选项

链接器选项