/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 上找到知识库文章。
指定冒号 (:) 和节 name。name 区分大小写。
不要使用以下名称,因为它们与标准名称冲突。例如,.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 开发环境中设置此链接器选项
打开此项目的“属性页”对话框。有关详细信息,请参见设置 Visual C++ 项目属性。
单击“链接器”文件夹。
单击“命令行”属性页。
将该选项键入“附加选项”框中。
以编程方式设置此链接器选项
- 请参见 AdditionalOptions。