Spec-Zone.ru › CMake 3.22

ENABLE_EXPORTS

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

Обычно исполняемый файл не экспортирует какие-либо символы, поскольку он является конечной программой. Исполняемый файл может экспортировать символы, которые будут использоваться загружаемыми модулями. При установке этого свойства в значение true CMake позволит другим целевым объектам «связывать» исполняемый файл с помощью команды target_link_libraries(). На всех платформах для целевых объектов, которые связываются с исполняемым файлом, создаётся зависимость уровня целевого объекта от исполняемого файла. Обработка исполняемого файла в строках связывания загружаемых модулей зависит от платформы:

  • В системах на основе Windows (включая Cygwin) вместе с исполняемым файлом создаётся «библиотека импорта», в которой перечислены экспортированные символы. Загружаемые модули связываются с библиотекой импорта, чтобы получить символы.
  • В macOS загружаемые модули связываются с самим исполняемым файлом, используя флаг -bundle_loader.
  • В AIX вместе с исполняемым файлом создаётся «файл импорта» компоновщика, в котором перечислены экспортированные символы для импорта при связывании других целевых объектов. Загружаемые модули связываются с файлом импорта, чтобы получить символы.
  • На других платформах загружаемые модули просто связываются без ссылки на исполняемый файл, так как динамический загрузчик автоматически свяжет символы при загрузке модуля.

Это свойство инициализируется значением переменной CMAKE_ENABLE_EXPORTS, если она задана при создании целевого объекта.

© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.22/prop_tgt/ENABLE_EXPORTS.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API