问题集锦:使用CMake部署Qt应用程序:set_target_properties、get_target_property

简介: 问题集锦:使用CMake部署Qt应用程序:set_target_properties、get_target_property

组合使用的例子

# 给myTarget增加prop1属性,值为p1
set_target_properties(myTarget PROPERTIES prop1 p1 prop2 p2)
# 获取myTaraget的prop1属性,并赋值给ret
get_target_property(ret myTarget prop1)
message(${ret}) # 返回p1
复制代码
get_target_property(windeployqt Qt5::qmake IMPORTED_LOCATION)
复制代码

target的名字就是Qt5::qmake,不要被::迷惑,变量名字允许使用::

定义Qt5::qmake的地方

  • Qt\5.15.2\msvc2019\lib\cmake\Qt5Core\Qt5CoreConfigExtras.cmake
if(NOT DEFINED QT_DEFAULT_MAJOR_VERSION)
    set(QT_DEFAULT_MAJOR_VERSION 5)
endif()
if (NOT TARGET Qt5::qmake)
    add_executable(Qt5::qmake IMPORTED)
    set(imported_location "${_qt5Core_install_prefix}/bin/qmake.exe")
    _qt5_Core_check_file_exists(${imported_location})
    set_target_properties(Qt5::qmake PROPERTIES
        IMPORTED_LOCATION ${imported_location}
    )
endif()
复制代码

这里就能看到IMPORTED_LOCATION的逻辑,我们看到是和_qt5Core_install_prefix拼接的,其实这个变量我们也能直接拿来用,但是是以_开头,一般习惯都认为是个私有变量,还是不使用为好

获取目录

get_filename_component



目录
相关文章
|
8月前
|
Web App开发 存储 Linux
Linux(33)Rockchip RK3568 Ubuntu22.04上通过SSH运行Qt程序和关闭Chrome的密钥提示
Linux(33)Rockchip RK3568 Ubuntu22.04上通过SSH运行Qt程序和关闭Chrome的密钥提示
535 0
|
6月前
|
Linux iOS开发 开发者
Qt问题(二):无法定位程序输入点于动态链接库
动态链接库(Dynamic Link Library,简称DLL)是一种可执行文件格式,常见于Windows操作系统中,而在Linux和macOS等其他操作系统中,相似的概念通常被称为共享库(Shared Library)。动态链接库允许程序在运行时加载所需的代码和数据,而不是在编译时静态链接到应用程序中。这种方式带来了几个重要的优点:
567 3
|
4月前
|
C语言 Android开发 C++
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
本文介绍了使用MTuner软件进行Qt MinGW编译程序的内存泄漏检测的方法,提供了MTuner的下载链接和测试代码示例,并通过将Debug程序拖入MTuner来定位内存泄漏问题。
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
|
3月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
119 3
|
8月前
|
开发框架 自然语言处理 Linux
Qt:构建强大跨平台应用程序的框架
Qt:构建强大跨平台应用程序的框架
|
5月前
CMake自动打包--Qt项目
CMake自动打包--Qt项目
75 0
|
5月前
|
Java 应用服务中间件 nginx
【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录
【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录
|
6月前
|
监控 Python
`pytest-qt` 是一个用于在 Qt 应用程序中进行 GUI 测试的 pytest 插件。
`pytest-qt` 是一个用于在 Qt 应用程序中进行 GUI 测试的 pytest 插件。
|
6月前
|
调度
【浅入浅出】Qt多线程机制解析:提升程序响应性与并发处理能力
在学习QT线程的时候我们首先要知道的是QT的主线程,也叫GUI线程,意如其名,也就是我们程序的最主要的一个线程,主要负责初始化界面并监听事件循环,并根据事件处理做出界面上的反馈。但是当我们只限于在一个主线程上书写逻辑时碰到了需要一直等待的事件该怎么办?它的加载必定会带着主界面的卡顿,这时候我们就要去使用多线程。
201 6

推荐镜像

更多