我有以下 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"
}
]
}
]
}
所以我使用安装了vcpkg
.
如果我在 Visual Studio 中构建调试一切都可以,而如果我在发布中构建,通过x64-Release
在 Visual Studio 配置中选择它构建,但是项目无法启动,因为它寻找 Qt5 调试库而不是发布库,即使 Qt 发布库被复制到应用程序的构建文件夹中。
为了创建 CMake 项目并在 Visual Studio 中构建发布属性,我应该怎么做?