Spec-Zone.ru › CMake 3.30

ENABLE_EXPORTS

Указывает, экспортирует ли исполняемый файл или общая библиотека символы.

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

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

Это свойство инициализируется значением переменной CMAKE_EXECUTABLE_ENABLE_EXPORTS, если она задана при создании целевого объекта типа исполняемый файл. Если CMAKE_EXECUTABLE_ENABLE_EXPORTS не задана, для инициализации свойства вместо этого используется переменная CMAKE_ENABLE_EXPORTS для обеспечения обратной совместимости. Ниже приведено альтернативное поведение инициализации для целевых объектов типа общая библиотека.

Новое в версии 3.27: Для связывания с общей библиотекой в macOS или общим фреймворком на любой платформе Apple может использоваться файл импорта компоновщика вместо самой общей библиотеки. Эти файлы импорта компоновщика также известны как текстовые заглушки и имеют расширение файла .tbd.

Генерация этих файлов импорта компоновщика, а также их использование контролируются этим свойством. При установке этого свойства в значение «истина» для целевого объекта типа общая библиотека CMake сгенерирует файл .tbd для библиотеки. Другие целевые объекты, которые связываются с целевым объектом типа общая библиотека, будут использовать этот файл .tbd при связывании вместо связывания с двоичным файлом общей библиотеки.

Примечание

По соображениям обратной совместимости это свойство будет проигнорировано, если свойство целевого объекта XCODE_ATTRIBUTE_GENERATE_TEXT_BASED_STUBS или переменная CMAKE_XCODE_ATTRIBUTE_GENERATE_TEXT_BASED_STUBS установлены в значение ложь.

Для целевых объектов типа общая библиотека это свойство инициализируется значением переменной CMAKE_SHARED_LIBRARY_ENABLE_EXPORTS, если она задана при создании целевого объекта.

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

Spec-Zone.ru

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