У меня есть следующий проект cmake:
cmake_minimum_required (VERSION 3.10.0)
project (proj)
set (CMAKE_INCLUDE_CURRENT_DIR ON)
set (CMAKE_AUTOMOC ON)
set (CMAKE_AUTORCC ON)
find_package (Qt5Widgets REQUIRED)
find_package (Qt5Gui REQUIRED)
include_directories (${CMAKE_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR})
set (PROJECT_SRC
main.cpp
)
add_executable (${PROJECT_NAME} ${PROJECT_SRC})
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
target_link_libraries(${PROJECT_NAME} Qt5::Widgets Qt5::Gui)
add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::Widgets> $<TARGET_FILE_DIR:${PROJECT_NAME}>)
add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::Gui> $<TARGET_FILE_DIR:${PROJECT_NAME}>)
add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::Core> $<TARGET_FILE_DIR:${PROJECT_NAME}>)
Я использую Visual Studio 2019 и имею следующие настройки CMake:
{
"configurations": [
{
"name": "x64-Debug",
"generator": "Ninja",
"configurationType": "Debug",
"inheritEnvironments": [
"msvc_x64_x64"
],
"buildRoot": "${workspaceRoot}/build/vs2019/build-debug",
"installRoot": "${workspaceRoot}/build/vs2019/install-debug",
"cmakeCommandArgs": "",
"buildCommandArgs": "-v",
"ctestCommandArgs": "",
"variables": [
{
"name": "CMAKE_TOOLCHAIN_FILE",
"value": "D:/Projects/vcpkg/scripts/buildsystems/vcpkg.cmake"
},
{
"name": "VCPKG_TARGET_TRIPLET",
"value": "x64-windows"
}
]
},
{
"name": "x64-Release",
"generator": "Ninja",
"configurationType": "Release",
"inheritEnvironments": [
"msvc_x64_x64"
],
"buildRoot": "${workspaceRoot}/build/vs2019/build-release",
"installRoot": "${workspaceRoot}/build/vs2019/install-release",
"cmakeCommandArgs": "",
"buildCommandArgs": "-v",
"ctestCommandArgs": "",
"variables": [
{
"name": "CMAKE_TOOLCHAIN_FILE",
"value": "D:/Projects/vcpkg/scripts/buildsystems/vcpkg.cmake"
},
{
"name": "VCPKG_TARGET_TRIPLET",
"value": "x64-windows"
}
]
}
]
}
Итак, я использую Qt, установленный с vcpkg
.
Если я встраиваю отладку в Visual Studio, то все в порядке, в то время как если я встраиваю в выпуск, выбрав x64-Release
в конфигурации Visual Studio, он строит, но затем проект не запускается, потому что он ищет библиотеки отладки Qt5 вместо выпуска даже если библиотеки релизов Qt копируются в папку сборки приложения.
Что я должен сделать, чтобы создать проект CMake и встроить свойство release в Visual Studio?