Страницы свойств компоновщика

Следующие свойства находятся в компоновщике свойств>>конфигурации проекта.> Дополнительные сведения о компоновщике см. в разделе CL Вызов параметров компоновщика и компоновщика.

Страница свойств "Общие"

Выходной файл

Параметр /OUT переопределяет имя и расположение программы по умолчанию, которую создает компоновщик.

Отображать ход выполнения

Печать сообщений о ходе выполнения компоновщика

Варианты

  • Не задано — нет детализации.
  • Отображение всех сообщений о ходе выполнения — отображает все сообщения о ходе выполнения.
  • При поиске библиотек отображаются сообщения о ходе выполнения, указывающие только те библиотеки, на которые выполняется поиск.
  • О свертке COMDAT во время оптимизированной компоновки — отображает сведения о свертывания COMDAT во время оптимизированной компоновки.
  • Сведения об удалении данных во время оптимизированной компоновки — отображает сведения о функциях и данных, удаленных во время оптимизированной компоновки.
  • Сведения о модулях, несовместимых с SEH. Отображает сведения о модулях, несовместимых с обработкой исключений Сейф.
  • Сведения о действии компоновщика, связанном с управляемым кодом . Отображение сведений об активности компоновщика, связанной с управляемым кодом.

Версия

Параметр /VERSION указывает компоновщику поместить номер версии в заголовок .exe или .dll файл. Используется DUMPBIN /HEADERS для просмотра поля OPTIONAL HEADER VALUES версии образа для просмотра эффекта /VERSION.

Включить инкрементную компоновку

Включает добавочную компоновку. (/INCREMENTAL, /INCREMENTAL:NO)

Отключить загрузочное объявление

Параметр /NOLOGO запрещает отображение сообщения об авторских правах и номера версии.

Пропустить библиотеку импорта

Это свойство сообщает компоновщику не связывать выходные .lib данные, созданные из этой сборки, в любой зависимый проект. Она позволяет системе проекта обрабатывать .dll файлы, которые не создают .lib файл при создании. Если проект зависит от другого проекта, создающего библиотеку DLL, система проекта автоматически связывает .lib файл, созданный этим дочерним проектом. Это свойство может быть ненужным в проектах, которые создают библиотеки DLL com или библиотеки DLL только для ресурсов, так как эти библиотеки DLL не имеют значимых экспортов. Если библиотека DLL не экспортирует, компоновщик не создает .lib файл. Если файл экспорта .lib отсутствует, и система проекта сообщает компоновщику связаться с отсутствующей библиотекой DLL, ссылка завершается ошибкой. Для устранения этой проблемы используйте свойство Пропустить библиотеку импорта. Если задано значение "Да", система проекта игнорирует наличие или отсутствие .lib файла и приводит к тому, что любой проект, зависящий от этого проекта, не связан с несуществующим .lib файлом.

Для программного доступа к этому свойству см. раздел IgnoreImportLibrary.

Зарегистрировать вывод

Выполняется regsvr32.exe /s $(TargetPath) в выходных данных сборки, допустимых только для .dll проектов. Для .exe проектов это свойство игнорируется. Чтобы зарегистрировать выходные .exe данные, задайте событие postbuild в конфигурации, чтобы выполнить настраиваемую регистрацию, которая всегда требуется для зарегистрированных .exe файлов.

Для программного доступа к этому свойству см. раздел RegisterOutput.

Перенаправление для пользователей

Регистрация в Visual Studio традиционно выполняется в HKEY_CLASSES_ROOT (HKCR). С Windows Vista и операционными системами более поздних версий для доступа к HKCR нужно запустить Visual Studio в режиме с повышенными правами. Разработчики не всегда хотят работать в режиме с повышенными привилегиями, но по-прежнему должны работать с регистрацией. Перенаправление на пользователя позволяет зарегистрировать без необходимости выполняться в режиме с повышенными привилегиями.

Перенаправление для каждого пользователя заставляет все записи в HKCR перенаправляться в HKEY_CURRENT_USER (HKCU). Если перенаправление для пользователей отключено, это может вызвать ошибку сборки проекта PRJ0050 при попытке программы выполнить запись в HKCR.

Дополнительные каталоги библиотек

Позволяет пользователю переопределить путь к библиотеке среды. (/LIBPATH:folder)

Указывает, следует ли связывать .lib файлы, созданные зависимыми проектами. Как правило, вы хотите связаться с .lib файлами, но это может быть не так для некоторых библиотек DLL.

Вы также можете указать файл, указав имя файла и относительный .obj путь, например ..\..\MyLibProject\MyObjFile.obj. Если исходный код для .obj файла имеет #include предварительно скомпилированные заголовки, например, pch.obj файл находится в той же папке, pch.hчто MyObjFile.objи . Кроме того, необходимо добавить pch.obj в качестве дополнительной зависимости.

Использовать входные данные зависимостей библиотек

Указывает, следует ли использовать входные данные для средства библиотеки, а не сам файл библиотеки при связывании выходных данных библиотеки зависимостей проекта. В большом проекте, когда зависимый проект создает .lib файл, добавочное связывание отключается. Если есть много зависимых проектов, создающих .lib файлы, создание приложения может занять много времени. Если для этого свойства задано значение "Да", системные ссылки проекта в .obj файлах для .lib файлов, созданных зависимыми проектами, что обеспечивает добавочное связывание.

Дополнительные сведения о том, как получить доступ к странице свойства общего компоновщика, см. в разделе "Задание свойств компилятора и сборки".

Указывает, должен ли компоновщик отображать индикатор хода выполнения, показывающий процент завершения ссылки. Значение по умолчанию не отображает эти сведения о состоянии. (/LTCG:STATUS|LTCG:NOSTATUS)

Запрет привязки DLL

/ALLOWBIND:NO задает бит в заголовке библиотеки DLL, указывающий на то, что Bind.exe привязка образа не разрешена. Если DLL имеет цифровую подпись, привязывать ее не следует (при привязке цифровая подпись становится недействительной).

Обрабатывать предупреждение компоновщика как ошибки

/WX Не приводит к созданию выходного файла, если компоновщик создает предупреждение.

Принудительное вывод файла

Параметр /FORCE сообщает компоновщику создать .exe файл или библиотеку DLL, даже если на символ ссылается, но не определен (UNRESOLVED) или определяется несколько раз (MULTIPLE). Он может создать недопустимый .exe файл.

Варианты

  • Включено - /FORCE без аргументов и./FORCE:MULTIPLE/FORCE:UNRESOLVED
  • Умножение определенного символа — используется /FORCE:MULTIPLE для создания выходного файла, даже если LINK находит несколько определений для символа.
  • Неопределенный символ — используется /FORCE:UNRESOLVED для создания выходного файла независимо от того, находит ли LINK неопределенный символ. /FORCE:UNRESOLVED игнорируется, если символ точки входа неразрешен.

Создание образа с исправлением

Готовит образ к оперативному исправлению.

Варианты

  • Включено . Подготовка образа к горячему исправлению.
  • Только образ X86 — подготавливает образ X86 к горячему исправлению.
  • Только образ X64— подготавливает образ X64 для горячего исправления.
  • Только образ Itanium — подготавливает образ Itanium для горячего исправления.

Указание атрибутов раздела

Параметр /SECTION изменяет атрибуты раздела, переопределяя атрибуты, заданные при .obj компиляции файла для раздела.

Страница "Входное свойство"

Дополнительные зависимости

Указывает дополнительные элементы зависимостей, добавляемые в командную строку ссылки, например kernel32.lib.

Игнорировать все библиотеки по умолчанию

Параметр /NODEFAULTLIB сообщает компоновщику удалить одну или несколько библиотек по умолчанию из списка библиотек, которые он выполняет поиск при разрешении внешних ссылок.

Игнорировать конкретные стандартные библиотеки

Указывает одно или несколько имен пропускаемых библиотек по умолчанию. Разделите несколько библиотек с запятой. (/NODEFAULTLIB:[name, name, ...])

Файл определения модуля

Параметр /DEF передает файл определения модуля (.def) компоновщику. Для LINK можно указать только один .def файл.

Добавление модуля в сборку

Этот /ASSEMBLYMODULE параметр позволяет добавить ссылку на модуль в сборку. Сведения о вводе в модуле не будут доступны программе сборки, которая добавила ссылку на модуль. Однако сведения о типе в модуле будут доступны любой программе, ссылающейся на сборку.

Внедрение управляемого файла ресурсов

/ASSEMBLYRESOURCE внедряет файл ресурса в выходной файл.

Принудительно включать ссылки на символы

Параметр /INCLUDE сообщает компоновщику добавить указанный символ в таблицу символов.

Задержка загруженных БИБЛИОТЕК DLL

Этот /DELAYLOAD параметр приводит к задержке загрузки библиотек DLL. Имя библиотеки dll указывает библиотеку DLL для задержки загрузки.

Параметр /ASSEMBLYLINKRESOURCE создает ссылку на ресурс платформа .NET Framework в выходном файле. Компоновщик не помещет файл ресурса в выходной файл.

Страница свойств файла манифеста

Создание манифеста

/MANIFEST указывает, что компоновщик должен создать параллельный файл манифеста.

Файл манифеста

/MANIFESTFILE позволяет изменить имя файла манифеста по умолчанию. Имя файла манифеста по умолчанию — это имя файла с .manifest добавленным.

Дополнительные зависимости манифеста

/MANIFESTDEPENDENCY позволяет указать атрибуты, которые будут помещены в раздел зависимостей файла манифеста.

Разрешить изоляцию

Задает поведение нахождения файлов манифеста. (/ALLOWISOLATION:NO)

Включение контроля учетных записей пользователей (UAC)

Указывает, включена ли контроль учетных записей пользователей. (/MANIFESTUAC, /MANIFESTUAC:NO)

Уровень выполнения UAC

Указывает запрошенный уровень выполнения для приложения при запуске с помощью управления учетными записями пользователей. (/MANIFESTUAC:level=[value])

Варианты

  • asInvoker — уровень выполнения UAC: как вызывающий.
  • самый высокий уровень выполнения — уровень выполнения UAC: самый высокий.
  • требуется Администратор istrator — уровень выполнения UAC: требуется администратор.

Обход пользовательского интерфейса UAC

Указывает, следует ли обходить уровни защиты пользовательского интерфейса для других окон на рабочем столе. Задайте для этого свойства значение "Да" только для приложений специальных возможностей. (/MANIFESTUAC:uiAccess=[true | false])

Страница свойств отладки

Создание сведений об отладке

Этот параметр позволяет создавать сведения об отладке для .exe файла или библиотеки DLL.

Варианты

  • Нет — не создает сведений об отладке.
  • Создание сведений об отладке. Создание полной базы данных программы (PDB) идеально подходит для распространения на сервер символов Майкрософт.
  • Создание отладочной информации, оптимизированной для более быстрых ссылок . Создает базу данных программы (PDB) идеально подходит для быстрого цикла редактирования и отладки канала.
  • Создание сведений об отладке, оптимизированных для общего доступа и публикации . Создает базу данных программы (PDB) идеально подходит для общего цикла редактирования и отладки.

Создание файла базы данных программы

По умолчанию при указании /DEBUG компоновщик создает базу данных программы (PDB), содержащую сведения об отладке. Имя файла по умолчанию для PDB имеет базовое имя программы и расширения .pdb.

Полоса частных символов

Параметр /PDBSTRIPPED создает второй файл базы данных программы (PDB) при сборке образа программы с любым из параметров компилятора или компоновщика, создающих PDB-файл (/DEBUG, /Z7/Zdили)./Zi

Создание файла карты

Параметр /MAP сообщает компоновщику создать файл карты.

Имя файла сопоставления

Указанное пользователем имя файла mapfile. Он заменяет имя по умолчанию.

Экспорт карт

Параметр /MAPINFO сообщает компоновщику включить указанные сведения в файл карты, который создается при указании /MAP параметра. EXPORTS сообщает компоновщику включить экспортированные функции.

Отлаживаемая сборка

/ASSEMBLYDEBUG выдает атрибут с отслеживанием сведений DebuggableAttribute отладки и отключает оптимизацию JIT.

Страница свойств системы

SubSystem

Параметр /SUBSYSTEM сообщает операционной системе, как запустить .exe файл. Выбор подсистемы влияет на символ точки входа (или функцию точки входа), которую будет выбирать компоновщик.

Варианты

  • Не задано — нет набора подсистем.
  • Консоль — приложение в режиме символов Win32. Консольные приложения получают консоль операционной системой. Если main или wmain определено, CONSOLE используется значение по умолчанию.
  • Windows — приложение не требует консоли, вероятно, потому что она создает собственные окна для взаимодействия с пользователем. Если WinMain или wWinMain определено, WINDOWS используется значение по умолчанию.
  • Собственный код — драйверы устройств для Windows NT. Если /DRIVER:WDM задано, NATIVE используется значение по умолчанию.
  • Приложение EFI — приложение EFI.
  • Драйвер службы загрузки EFI — драйвер службы загрузки EFI.
  • EFI ROM - EFI ROM.
  • Среда выполнения EFI — среда выполнения EFI.
  • POSIX — приложение, которое выполняется с подсистемой POSIX в Windows NT.

Минимальная требуемая версия

Укажите минимальную требуемую версию подсистемы. Аргументы — десятичные числа в диапазоне от 0 до 65535.

Размер резерва кучи

Указывает общий размер выделения кучи в виртуальной памяти. Значение по умолчанию — 1 МБ. (/HEAP:reserve)

Размер фиксации кучи

Указывает общий размер выделения кучи в физической памяти. Значение по умолчанию — 4 КБ. ([/HEAP:reserve,commit](heap-set-heap-size.md))

Размер резерва стека

Определяет общий размер виртуальной памяти, выделяемой для стека. Значение по умолчанию — 1 МБ. (/STACK:reserve)

Размер фиксации стека

Указывает общий размер выделения стека в физической памяти. Значение по умолчанию — 4 КБ. (/STACK:reserve,commit)

Включение больших адресов

Параметр /LARGEADDRESSAWARE сообщает компоновщику, что приложение может обрабатывать адреса размером более 2 гигабайт. По умолчанию включен, /LARGEADDRESSAWARE:NO если /LARGEADDRESSAWARE в строке компоновщика не указано иное.

Terminal Server (Сервер терминалов)

Параметр /TSAWARE задает флаг в поле в IMAGE_OPTIONAL_HEADERDllCharacteristics необязательном заголовке образа программы. При установке этого флага сервер терминалов не будет вносить определенные изменения в приложение.

Переключение запуска с компакт-диска

Параметр /SWAPRUN сообщает операционной системе сначала скопировать выходные данные компоновщика в файл буфера, а затем запустить образ. Этот параметр является функцией Windows NT 4.0 (и более поздних версий). При CD указании операционная система копирует образ на съемный диск в файл страницы, а затем загружает его.

Переключение запуска из сети

Параметр /SWAPRUN сообщает операционной системе сначала скопировать выходные данные компоновщика в файл буфера, а затем запустить образ. Этот параметр является функцией Windows NT 4.0 (и более поздних версий). Если NET задано, операционная система сначала копирует двоичный образ из сети в файл буфера и загружает его из него. Этот параметр полезен для запуска приложений по сети.

Драйвер

/DRIVER Используйте параметр компоновщика для создания драйвера режима ядра Windows NT.

Варианты

  • Не задано — параметр драйвера по умолчанию.
  • Драйвер — драйвер
  • - /DRIVER:UPONLY UP приводит к добавлению бита IMAGE_FILE_UP_SYSTEM_ONLY в характеристики в заголовке выходных данных, чтобы указать, что это драйвер юнипроцессора (UP). Операционная система откажется загрузить драйвер UP в систему с несколькими обработчиками (MP).
  • WDM - /DRIVER:WDM приводит к тому, что компоновщик устанавливает IMAGE_DLLCHARACTERISTICS_WDM_DRIVER бит в поле необязательного заголовка DllCharacteristics .

Страница свойств оптимизации

Ссылки

/OPT:REF устраняет функции и (или) данные, на которые никогда не ссылаются, а /OPT:NOREF функции и (или) данные никогда не ссылаются.

Включить свертывание записей COMDAT

Используется /OPT:ICF[=iterations] для выполнения идентичных свертывания COMDAT.

Порядок функций

Параметр /ORDER указывает LINK для оптимизации программы, поместив определенные COMDAT в образ в предопределенном порядке. LINK помещает функции в указанный порядок в каждом разделе изображения.

Руководство по профилю базы данных

.pgd Укажите файл для интерактивных оптимизаций профиля. (/PGD)

Задает создание кода во время компоновки. (/LTCG)

Варианты

  • По умолчанию — параметр LTCG по умолчанию .
  • Используйте создание кода времени быстрого соединения. Используйте создание кода времени связи с /FASTGENPROFILE.
  • Используйте создание кода времени связи. Используйте создание кода времени связи.
  • Руководство по оптимизации профиля — инструмент . Использование управляемой оптимизации профиля с :PGINSTRUMENTпомощью .
  • Оптимизация профиля — оптимизация — указывает, что компоновщик должен использовать данные профиля, созданные после запуска инструментированного двоичного файла для создания оптимизированного образа.
  • Руководство по оптимизации профиля — обновление — позволяет добавлять или изменять список входных файлов, которые были указаны на :PGINSTRUMENT этапе.

Страница свойств Встроенного IDL

Команды MIDL

Укажите параметры командной строки MIDL. (/MIDL:@responsefile)

Игнорировать внедренный IDL

Параметр /IGNOREIDL указывает, что любые атрибуты IDL в исходном .idl коде не должны обрабатываться в файл.

Объединенный базовый файл IDL

Параметр /IDLOUT задает имя и расширение .idl файла.

Библиотека типов

Параметр /TLBOUT задает имя и расширение .tlb файла.

Идентификатор ресурса TypeLib

Позволяет указать идентификатор ресурса созданной компоновщиком библиотеки типов. (/TLBID:id)

Страница свойств метаданных Windows

Создание метаданных Windows

Включает или отключает создание метаданных Windows.

Варианты

  • Да . Включение создания файлов метаданных Windows.
  • Нет . Отключите создание файлов метаданных Windows.

Файл метаданных Windows

Переключатель /WINMDFILE параметра.

Файл ключа метаданных Windows

Укажите пару ключей или ключей, чтобы подписать метаданные Windows. (/WINMDKEYFILE:filename)

Контейнер ключей метаданных Windows

Укажите контейнер ключей для подписи метаданных Windows. (/WINMDKEYCONTAINER:name)

Знак задержки метаданных Windows

Частично подписывая метаданные Windows. Используйте /WINMDDELAYSIGN , только если вы хотите поместить открытый ключ в метаданные Windows. Значение по умолчанию — /WINMDDELAYSIGN:NO.

Страница расширенных свойств

Точка входа

Параметр [/ENTRY](entry-entry-point-symbol.md) указывает функцию точки входа в качестве начального .exe адреса файла или библиотеки DLL.

Точка входа отсутствует

Этот /NOENTRY параметр необходим для создания библиотеки DLL, доступной только для ресурсов. Используйте этот параметр, чтобы LINK не добавлял ссылку на _main в DLL.

Установка контрольной суммы

Параметр /RELEASE задает контрольную сумму в заголовке .exe файла.

Базовый адрес

Задает базовый адрес для программы. (/BASE:{address[,size] | @filename,key})

Случайный базовый адрес

Случайный базовый адрес. (/DYNAMICBASE[:NO])

Фиксированный базовый адрес

Создает программу, которая может загружаться только по предпочтительному базовому адресу. (/FIXED[:NO])

Предотвращение выполнения данных (DEP)

Помечает исполняемый файл как тестируемый для совместимости с функцией предотвращения выполнения данных Windows. (/NXCOMPAT[:NO])

Отключение создания сборок

Параметр /NOASSEMBLY сообщает компоновщику создать изображение для текущего выходного файла без сборки платформа .NET Framework.

Выгрузка загруженной библиотеки DLL

Квалификатор UNLOAD сообщает вспомогательной функции задержки загрузки для поддержки явной выгрузки библиотеки DLL. (/DELAY:UNLOAD)

Nobind delayed loaded DLL

Квалификатор NOBIND сообщает компоновщику не включать привязываемую таблицу адресов (IAT) в окончательном изображении. По умолчанию задано создание связываемой таблицы IAT для библиотек DLL, загружаемых с задержкой. (/DELAY:NOBIND)

Импорт библиотеки

Переопределяет имя библиотеки импорта по умолчанию. (/IMPLIB:filename)

Разделы слияния

Параметр /MERGE объединяет первый раздел со вторым разделом и дает результирующее имя второго раздела. Например, /merge:.rdata=.text объединяет раздел с .text разделом и именует объединенный раздел.text.rdata.

Целевой компьютер

Параметр /MACHINE задает целевую платформу для программы.

Варианты

  • Не задан
  • MachineARM
  • MachineARM64
  • MachineEBC
  • MachineIA64
  • MachineMIPS
  • MachineMIPS16
  • MachineMIPSFPU
  • MachineMIPSFPU16
  • MachineSH4
  • MachineTHU МБ
  • MachineX64
  • MachineX86

Profile

Создает выходной файл, который может быть использован для профилировщика производительности инструментов. Требуется, чтобы для свойства Generate Debug Info было задано значение GenerateDebugInformation (/DEBUG). (/PROFILE)

Атрибут потока CLR

Явно укажите атрибут потоковой передачи для точки входа программы CLR.

Варианты

  • Атрибут потоков MTA— применяет атрибут MTAThreadAttribute к точке входа программы.
  • Атрибут потоков STA — применяет атрибут STAThreadAttribute к точке входа программы.
  • Атрибут потоков по умолчанию — то же, что и не указан /CLRTHREADATTRIBUTE. Позволяет среде CLR задать атрибут потоков по умолчанию.

Тип образа CLR

Задает тип (IJW, pure или safe) CLR-образа.

Варианты

  • Принудительное изображение IJW
  • Принудительное применение образа Pure IL
  • Принудительное Сейф образа IL
  • Тип изображения по умолчанию

Файл ключа

Укажите пару ключей или ключей для подписывания сборки. (/KEYFILE:filename)

Контейнер ключей

Укажите контейнер ключей для подписи сборки. (/KEYCONTAINER:name)

Знак задержки

Частично подписыв сборку. Используйте, /DELAYSIGN только если вы хотите поместить открытый ключ в сборку. Значение по умолчанию — /DELAYSIGN:NO.

Проверка неуправляемого кода среды CLR

/CLRUNMANAGEDCODECHECK Указывает, будет ли компоновщик применяться SuppressUnmanagedCodeSecurityAttribute к вызовам P/Invoke, созданным компоновщиком, из управляемого кода в собственные библиотеки DLL.

Отчет об ошибках

Позволяет предоставлять сведения о внутренней ошибке компилятора (ICE) непосредственно команде Visual Studio C++.

Варианты

  • PromptImmediately — запрос немедленно.
  • Очередь для следующего входа — очередь для следующего входа.
  • Отправка отчета об ошибке — отправка отчета об ошибке.
  • Нет отчета об ошибке — нет отчета об ошибке.

SectionAlignment

Параметр /ALIGN задает выравнивание каждого раздела в линейном адресном пространстве программы. Аргумент числа имеет значение байтов и должен быть двумя.

Сохранение последнего кода ошибки для вызовов PInvoke

/CLRSUPPORTLASTERROR, который по умолчанию включен, сохраняет последний код ошибки функций, вызываемых с помощью механизма P/Invoke, который позволяет вызывать собственные функции в DLLS из кода, скомпилированного с /clrпомощью.

Варианты

  • Включено — включить /CLRSupportLastError.
  • Отключено — отключить /CLRSupportLastError.
  • Только системные библиотеки DLL— включите /CLRSupportLastError только системные библиотеки DLL.

Образ содержит обработчики исключений Сейф

При /SAFESEH указании компоновщик создает только изображение, если оно также может создать таблицу безопасных обработчиков исключений образа. Эта таблица указывает для операционной системы, которая является допустимой обработчиками исключений для образа.