QT项目pro文件检测PATH,兼论contains使用

2024-02-04 10:38

本文主要是介绍QT项目pro文件检测PATH,兼论contains使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

想在qt的项目文件 pro 文件中设置环境变量PATH检测,以避免程序启动缺少相关的dll文件,便于项目备份迁移时候提醒。

可设置了 contains ,几乎不起作用。

官方说明:

contains(variablename, value)

Succeeds if the variable variablename contains the value value; otherwise fails. It is possible to specify a regular expression for parameter value.

You can check the return value of this function using a scope.

For example:

contains( drivers, network ) {# drivers contains 'network'message( "Configuring for network build..." )HEADERS += network.hSOURCES += network.cpp
}

The contents of the scope are only processed if the drivers variable contains the value network. If this is the case, the appropriate files are added to the SOURCES and HEADERS variables.

这里其实是一个坑,这个contains不是包含network,而是包含某个item,一项是network。而每个项的分隔符是空格,所以范例中的network是一个字。如果drivers中包含 network-script,则contains(drivers,network)这个表达式结果是false。而环境变量 PATH的分割符是分号“;”,所以这个contains不能直接用。

修改如下:

通过split函数分割;的每个项目,这样处理结果传递给PATH变量,这样的变量能被contains处理,也支持每个小项中包含空格。

 

这样就通过了,如果PATH没有对应的MYLIB目录,编译生成停止。

 


后记Mac OS X

本来以为Mac OS X 下需要处理 DYLD_LIBRARY_PATH 变量。结果出乎意料

感觉 QT在构建和运行时候,环境是不一样的。

构建的时候

构建时候环境变量
构建时候的环境变量

 

运行的环境变量

可以看到, pro 文件运行 qmake构建的时候,DYLD_LIBRARY_PATH是没有的。此时的检测DYLD_LIBRARY_PATH是没有意义的。而且好像无需另外的 .profile的bash中设置。构建时候会根据打开时候的pro文件,在lib里自动添加。

就是修改完毕pro文件后,最好退出QT Creator 一次。

这篇关于QT项目pro文件检测PATH,兼论contains使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/677205

相关文章

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal

gorm乐观锁使用小结

《gorm乐观锁使用小结》本文主要介绍了gorm乐观锁使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言grom乐观锁机制gorm乐观锁依赖安装gorm乐观锁使用创建一个user表插入数据版本号更新总结前言乐观锁,顾名

Python 函数详解:从基础语法到高级使用技巧

《Python函数详解:从基础语法到高级使用技巧》本文基于实例代码,全面讲解Python函数的定义、参数传递、变量作用域及类型标注等知识点,帮助初学者快速掌握函数的使用技巧,感兴趣的朋友跟随小编一起... 目录一、函数的基本概念与作用二、函数的定义与调用1. 无参函数2. 带参函数3. 带返回值的函数4.

MySQL中DATE_FORMAT时间函数的使用小结

《MySQL中DATE_FORMAT时间函数的使用小结》本文主要介绍了MySQL中DATE_FORMAT时间函数的使用小结,用于格式化日期/时间字段,可提取年月、统计月份数据、精确到天,对大家的学习或... 目录前言DATE_FORMAT时间函数总结前言mysql可以使用DATE_FORMAT获取日期字段

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

Go语言使用sync.Mutex实现资源加锁

《Go语言使用sync.Mutex实现资源加锁》数据共享是一把双刃剑,Go语言为我们提供了sync.Mutex,一种最基础也是最常用的加锁方式,用于保证在任意时刻只有一个goroutine能访问共享... 目录一、什么是 Mutex二、为什么需要加锁三、实战案例:并发安全的计数器1. 未加锁示例(存在竞态)

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.