Добавление зависимостей в статическую библиотеку с помощью CMake в Visual Studio 2017 не работаетC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Добавление зависимостей в статическую библиотеку с помощью CMake в Visual Studio 2017 не работает

Сообщение Anonymous »

Я пытаюсь преобразовать большой проект (с исполняемыми, динамическими и статическими библиотеками) для использования системы сборки CMake. У меня проблемы с добавлением зависимостей в статические библиотеки.

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

cmake_minimum_required(VERSION 3.8.0)
project(CC)
add_subdirectory(SmartCardUtility)
add_subdirectory(CertificateUtil)
..


Файл CMakeLists.txt в разделе CertificateUtil выглядит, как показано ниже.

project(CertificateUtil CXX)
source grouping....
include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../../Output/_INC_DEV")
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../OpenSSL")
add_library(${PROJECT_NAME} STATIC ${ALL_FILES})
target_link_libraries(${PROJECT_NAME} libcrypto)


Если в приведенном выше фрагменте кода add_library заменяется на add_executable или add_library на SHARED, то зависимости разрешаются правильно и отображаются в разделе «Дополнительные_зависимости», но для статических lib, дополнительные_зависимости на странице свойств всегда пусты.

После просмотра сети вокруг этого момента я понял, что команда target_link_libraries ничего не добавляет в Библиотекаре. Тогда возникает вопрос: как правильно добавить зависимости к статическим библиотекам, чтобы они отображались в разделе «Дополнительные_зависимости» в разделе «Библиотекарь»?

Я пытался добавить зависимости как импортированные объекты как показано ниже, но все равно не работает.

add_library(libcrypto OBJECT IMPORTED)
set_property(TARGET libcrypto PROPERTY IMPORTED_OBJECTS "${CMAKE_CURRENT_SOURCE_DIR}/../../OpenSSL/libcrypto.lib")
add_library(${PROJECT_NAME} STATIC ${ALL_FILES} $)


Подробнее здесь: https://stackoverflow.com/questions/609 ... 7-does-not
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»