Как можно использовать vcpkg-installed-lib и библиотеку с одиночной загрузкой в ​​CLionC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как можно использовать vcpkg-installed-lib и библиотеку с одиночной загрузкой в ​​CLion

Сообщение Anonymous »

Случай 1.
Я обычно устанавливаю библиотеки cxx с помощью vcpkg.
Я использую Clion для сборки и запуска своего проекта. Моя версия CLion — 2024.1.1.
Я установил -DCMAKE_TOOLCHAIN_FILE=/path/to/my/vcpkg/scripts/buildsystems/vcpkg.cmake в настройках CLion.
Настройка Путь: Настройки – Сборка, Выполнение, Развертывание – CMake – Параметры CMake, как показано на снимке экрана:
введите здесь описание изображения
Случай 2Иногда я также загружаю исходный код и компилирую его без vcpkg.
Недавно я использую boost_1_85_0.
Я скомпилировал и установил версию boost по определенному пути.
Если я устанавливаю CMAKE_TOOLCHAIN_FILE, как и в случае 1, CLion не может найти пакет повышения.
Поэтому я удаляю параметр CMAKE_TOOLCHAIN_FILE в CLion.
И добавляю параметр CMAKE_PREFIX_PATH в CMakeLists.txt следующим образом:

Код: Выделить всё

cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME vcpkg_and_singlelib)
project(${PROJECT_NAME})

set(CMAKE_CXX_STANDARD 17)

add_executable(${PROJECT_NAME} main.cpp)

set(BOOST_ROOT "Path/to/boost/installed/boost_1_85_0_install_default")
set(CMAKE_PREFIX_PATH        "${BOOST_ROOT}")
find_package(Boost 1.85.0 REQUIRED COMPONENTS system thread date_time log log_setup program_options)
target_include_directories(${PROJECT_NAME} PRIVATE ${Boost_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} PRIVATE Boost::system Boost::thread Boost::date_time Boost::log Boost::log_setup Boost::program_options)

find_package(RapidJSON CONFIG REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE rapidjson)

Но CLion не может найти пакеты, установленные vcpkg, такие как RapidJson, как показано выше.
Вопрос:
Как найти пакеты как в каталоге vcpkg, так и в каталоге, установленном самостоятельно?
Я устанавливаю CMAKE_TOOLCHAIN_FILE перед пакетами, установленными с помощью vcpkg, и после пакетов, установленных самостоятельно.

Код: Выделить всё

cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME vcpkg_and_singlelib)
project(${PROJECT_NAME})

set(CMAKE_CXX_STANDARD 17)

add_executable(${PROJECT_NAME} main.cpp)

set(BOOST_ROOT "Path/to/boost/installed/boost_1_85_0")
set(CMAKE_PREFIX_PATH        "${BOOST_ROOT}")
find_package(Boost 1.85.0 REQUIRED COMPONENTS system thread date_time log log_setup program_options)
target_include_directories(${PROJECT_NAME} PRIVATE ${Boost_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} PRIVATE Boost::system Boost::thread Boost::date_time Boost::log Boost::log_setup Boost::program_options)

set(CMAKE_TOOLCHAIN_FILE "/path/to/my/vcpkg/scripts/buildsystems/vcpkg.cmake")

find_package(RapidJSON CONFIG REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE rapidjson)
Но пакеты, установленные с помощью vcpkg, по-прежнему не могут быть найдены.

Подробнее здесь: https://stackoverflow.com/questions/785 ... r-in-clion
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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