/SECTION (указание атрибутов секции)
/SECTION:name,[[!]{DEKPRSW}][,ALIGN=#]
Заметки
Параметр /SECTION изменяет атрибуты секции, переопределяя атрибуты, заданные при компилировании OBJ-файла для секции.
Секции в переносимых исполняемых файлах (PE) в общих чертах подобны сегментам или ресурсам в новых исполняемых файлах (NE). Секции содержат код или данные. В отличие от сегментов секции представляют собой блоки непрерывной памяти без ограничения размеров. Некоторые секции содержат код или данные, объявляемые и используемые программой непосредственно, тогда как другие секции данных создаются компоновщиком и диспетчером библиотек (lib.exe) и содержат сведения, необходимые для операционной системы. Дополнительные сведения о NE-файлах см. в статье базы знаний "Формат заголовка исполняемого файла" (Q65122). Статьи базы знаний можно найти в библиотеке MSDN или в https://support.microsoft.com.
Перед именем name секции следует указывать двоеточие (":"). Имя name задается с учетом регистра.
Не следует использовать имена, список которых приведен ниже, поскольку они конфликтуют со стандартными именами. Например, имя .sdata используется на платформах RISC.
.arch
.bss
.data
.edata
.idata
.pdata
.rdata
.reloc
.rsrc
.sbss
.sdata
.srdata
.text
.xdata
Для секции можно задать один или несколько атрибутов. Знаки атрибутов, приведенные ниже, нечувствительны к регистру. Следует задавать все атрибуты, которые должна иметь секция; если какой-либо знак атрибута не указан, то его бит будет отключен. Если не указан атрибут R, W или E, то существующее состояние чтения, записи или исполнения остается неизмененным.
Чтобы инвертировать атрибут, укажите перед его символом восклицательный знак ("!"). Значения знаков атрибутов приведены в следующей таблице.
Знак |
Атрибут |
Значение |
---|---|---|
E |
Выполнение |
Секция является выполняемой |
R |
Read |
Допускаются операции чтения данных |
W |
Запись |
Допускаются операции записи данных |
S |
Shared |
Секция совместно используется всеми процессами, загружающими образ |
D |
Выгружаемая |
Секция помечается как выгружаемая |
K |
Кэшируемая |
Секция помечается как некэшируемая |
P |
Со страничной организацией |
Секция помечается как секция без страничной организации |
Символы K и P отличаются от остальных: соответствующие им флаги секции имеют обратный смысл. Если один из них указан в секции .text (/SECTION:.text,K), то при выполнении DUMPBIN с параметром /HEADERS разницы во флагах секции не будет, поскольку секция уже кэширована неявно. Чтобы удалить эту установку по умолчанию, следует указать параметр /SECTION:.text,!K; тогда программа DUMPBIN будет использовать характеристики раздела, включая характеристику "Некэшируемая".
Секция в PE-файле, для которой не установлен атрибут E, R или W, вероятно, является недопустимой.
С помощью параметра ALIGN*=#* можно задать значение выравнивания для конкретной секции. Дополнительные сведения см. в разделе /ALIGN.
Установка данного параметра компоновщика в среде разработки Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Задание свойств проекта C++.
Выберите папку Компоновщик.
Выберите страницу свойств Командная строка.
Введите параметр в поле Дополнительные параметры.
Установка данного параметра компоновщика программным способом
- См. раздел AdditionalOptions.