首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于自定义调试生成的CMake qt输入库后缀

用于自定义调试生成的CMake qt输入库后缀
EN

Stack Overflow用户
提问于 2019-12-13 04:41:28
回答 1查看 225关注 0票数 0

我一直在为多配置IDE (Visual )编写一个cmake文件。我的目标是添加一个自定义配置,并告诉Visual,我希望使用Qt的调试库(qtcored.lib),就像我选择调试配置时所做的那样。在下面的代码中,当我选择CustomDebug配置时,我在链接器输入中有了发布库

有人知道如何做到这一点吗?

谢谢

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.12.0)

project(custom-conf)

find_package(Qt5Core        CONFIG REQUIRED)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)

set(SRC main.cpp)

set(QT_LIBS Qt5::Core)

add_executable(custom-conf WIN32 ${SRC})

target_link_libraries(custom-conf ${QT_LIBS})

#
get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)

if(isMultiConfig)
    set(CMAKE_CONFIGURATION_TYPES "CustomDebug;Debug;Release" CACHE STRING "" FORCE)
    set(CMAKE_EXE_LINKER_FLAGS_CUSTOMDEBUG "/debug")
endif()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-13 09:41:05

我想使用Qt的调试库(qtcored.lib),就像我选择调试配置时所做的那样。

使用导入的目标,这可以很容易地通过使用MAP_IMPORTED_CONFIG 目标属性实现。

代码语言:javascript
复制
# For CustomDebug configuration of the main project
# use Debug configuration of the IMPORTED target
set_target_properties(Qt5::Core PROPERTIES
    MAP_IMPORTED_CONFIG_CUSTOMDEBUG DEBUG)

通过设置CMAKE_MAP_IMPORTED_CONFIG 变量,您可以自动设置所有导入目标的属性:

代码语言:javascript
复制
set(CMAKE_MAP_IMPORTED_CONFIG_CUSTOMDEBUG DEBUG)
#...
# This call will create IMPORTED target Qt5::Core which
# MAP_IMPORTED_CONFIG_CUSTOMDEBUG property is already set.
find_package(Qt5Core CONFIG REQUIRED)

(变量赋值应该在创建导入目标的任何调用(如创建导入目标的)之前)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59316242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档