Qt 条件编译 arm windows linux 判断 跨平台
如果代码里面有些判断需要不同的参数做判断;
办法:在pro文件里面做定义
方法1:直接定义一个宏;用的时候可以直接判断,这样做不好的地方是编译前需要重新切换一下宏
1)定义宏
DEFINES += __ARM _ARM _LINUX
DEFINES += _WIN32 _WINDOWS
DEFINES += _LINUX_86 _LINUX
2)用的时候使用条件判断contians 是否包括:
contains(DEFINES, _ARM){
TARGET = GwEmsQt
}else{
contains(DEFINES,_WINDOWS){
}else{
TARGET = GwEmsQtWin
}
TARGET = GwEmsQtLinux86
}
方法2:这个宏的定义直接根据宏来判断,
由于内置函数isEqual不会如何判断字符串是否含有arm,只能写全路径,且只能先定义一个临时变量ISARM来判断
后续步骤如1一样;
ISARM=$$[QT_HOST_PREFIX]
isEqual(ISARM, "/home/wudqubt/tools/qt-arm-2009"){
message("arm")
DEFINES += __ARM _ARM _LINUX
}else{
if(contains(CONFIG, linux)){
message("linux no arm")
DEFINES += _LINUX_86 _LINUX
}else{
message("no linux no arm")
DEFINES += _WIN32 _WINDOWS
}
}
其他一些有用的宏和函数:
message(QMAKE_HOST.os: $$QMAKE_HOST.os)
message(QMAKE_HOST.arch: $$QMAKE_HOST.arch)
message(QMAKE_HOST.cpu: $$QMAKE_HOST.cpu)
message(QMAKE_HOST.version: $$QMAKE_HOST.version)
message(QMAKE_HOST.version_string: $$QMAKE_HOST.version_string)
message(QMAKESPEC: $${QMAKESPEC})
message(QT_HOST_PREFIX: $$[QT_HOST_PREFIX])
message(CONFIG: $$CONFIG)
message(defines: $$DEFINES)
message(QMAKE_VERSION: $$[QMAKE_VERSION])
Qt 条件编译 arm windows linux 判断 跨平台的更多相关文章
- windows linux—unix 跨平台通信集成控制系统----文件搜索
跨平台的网络通信,跟设备的集成控制,牵扯到在各种平台下的文件搜索问题,windows下面的已经有了. 地址如下: http://blog.csdn.net/wangyaninglm/article/d ...
- windows linux—unix 跨平台通信集成控制系统----系统硬件信息获取
控制集成系统需要了解系统的各项硬件信息,之前我们设计的时候,习惯使用c函数来搞,后来可能发现程序的移植性收到了一些影响,比如unix内核的一些c函数在linux下面是没有的: 比如 苹果达尔文内核的如 ...
- windows linux—unix 跨平台通信集成控制系统
首先,我们可以用到这个开源的开发包: mdk(Micro-Development-Kit)微量级软件开发包,提供几个常用类,主要实现了一个高性能的并发服务器引擎 使用c++开发,是一个跨平台的开发包, ...
- 【Qt开发】【Linux开发】Qt程序在嵌入式设备(arm) 上运行,鼠标擦除界面的解决方案
笔者最近想在arm开发板上,开发一个应用程序,经过网上查询发现qt作为跨平台开发软件很不错,于是便选择了qt开发,笔者的qt版本是4.8.6的.由于arm的主频太低,在arm上进行开发编译,效率会大大 ...
- 使用Active Database Duplication创建跨平台Data Guard设置 (Windows/Linux) (Doc ID 881421.1)
Using Active Database Duplication to Create Cross Platform Data Guard Setup (Windows/Linux) (Doc ID ...
- IDA Pro Disassembler 6.8.15.413 (Windows, Linux, Mac)
IDA: What's new in 6.8 Highlights This is mainly a maintenance release, so our focus was on fixing b ...
- 【Qt开发】【ARM-Linux开发】 QT在ARM上显示字体的问题
在PC机上利用QT开发的应用程序在设置字体时,在PC上运行,可根据自己的设置,字体随之变大或变小.而移植到ARM上运行时发现,显示字体与所设置的字体不用,字体普遍偏小.经过上网搜索发现,是环境变量字库 ...
- Matlab命令——目录操作(windows&Linux)
Matlab命令——目录操作(windows&Linux) 1. filesep用于返回当前平台的目录分隔符,Windows是反斜杠(\),Linux是斜杠(/).有时此命令结合ispc命令使 ...
- 调试exynos4412—ARM嵌入式Linux—LEDS/GPIO驱动之二
/** ****************************************************************************** * @author 暴走的小 ...
随机推荐
- netcore使用IOptions
{ "Logging": { "LogLevel": { "Default": "Information", " ...
- .Net Core使用分布式缓存Redis:Lua脚本
一.前言 运行环境window,redis版本3.2.1.此处暂不对Lua进行详细讲解,只从Redis的方面讲解. 二.Redis的Lua脚本 在Redis的2.6版本推出了脚本功能,允许开发者使用L ...
- Python思维导图(一)—— 基础
前言 思维导图并不能涵盖所有知识点,只是梳理某个知识点下我们需要重点关注的分支:根据自己的情况可以进行拓展学习 计算机基础 博主认为需要重点掌握的有 编译型语言和解释型语言的区别?分别有什么编程语言? ...
- Windows10内嵌Ubuntu子系统配置python开发环境
Windows10内嵌Ubuntu子系统配置python开发环境 安装pycharm. 到intellij idea网站下载Linux环境下载免费的pycharm,通过ubuntu子系统内部的/mnt ...
- LeetCode 第七题--整数反转
1. 题目 2.思路 1. 题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 ...
- [bzoj4571] [loj#2016] [Scoi2016] 美味
Description 一家餐厅有 \(n\) 道菜,编号 \(1\)...\(n\) ,大家对第 \(i\) 道菜的评价值为 \(ai\)( \(1 \leq i \leq n\) ).有 \(m\ ...
- 2、pycharm安装及相关配置
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试. 语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本控制 ...
- 《Sequence Models》课堂笔记
Lesson 5 Sequence Models 这篇文章其实是 Coursera 上吴恩达老师的深度学习专业课程的第五门课程的课程笔记. 参考了其他人的笔记继续归纳的. 符号定义 假如我们想要建立一 ...
- HGE引擎改进——2014/3/4
2014/3/4 更新 1.提升资源包管理效率 2.Show库整合.目前Show库有Picture.Frame.Animation和Particle类,以及PictureData和ParticleSy ...
- AI初探
看东西应该记笔记,不然如过眼云烟,如只逛商场,不买东西,不留下带走什么,就是浪费时间,没有收获,仅此开始,定期梳理看过的东西. 人工智能的目的是什么呢? 答:让机器表现得更像人类,甚至在某些技能上超越 ...