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 暴走的小 ...
随机推荐
- mysql时间类型和格式转换
内容目录 简介mysql时间类型DATE_FORMAT()函数 简介 今天开发中,做一个功能需要对历史数据进行补充,相信大家也遇到过这样的情况,这个历史数据需要按月份和人的id进行区分,于是想到了my ...
- spring注入相关注解
本次主要整理四个注解 @ComponentScan.@Scope.@Conditional.@Import 1. @ComponentScan(value = "com.xiaoguo&qu ...
- go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)
目录 go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer) demo demo server demo client 池 dao service p2c ro ...
- kubernetes基础概念知多少
kubernetes(简称k8s)是一种用于在一组主机上运行和协同容器化应用程序的管理平台,皆在提供高可用.高扩展性和可预测性的方式来管理容器应用的生命周期.通过k8s,用户可以定义程序运行方式.部署 ...
- 如何添加.pch文件
1.Create a pch , call name is project+xxx.pch For example: DuoME-PrefixHeader.pch 2.在project——>Bu ...
- [LOJ#3022][网络流]「CQOI2017」老 C 的方块
题目传送门 定义有特殊边相邻的格子颜色为黑,否则为白 可以看出,题目给出的限制条件的本质是如果两个小方块所在的格子 \(x\) 和 \(y\) 为两个相邻的黑格,那么 \(x\) 和 \(y\) 之间 ...
- [apue] 使用 Ctrl+S停止输出而不用挂起前台进程
之前一直知道使用 Ctrl+Z 挂起前台进程来阻止进程运行,之后可以再通过 shell 的作业控制 (jobs / fg N) 来将后台进程切换为前台,从而继续运行. 最近学到一种新的方法,对于不停有 ...
- 从maven安装配置到idea成功创建maven项目
在文章开始之前,我还是想安抚下你躁动的心情,说实话这一套操作下来的确花了我不少时间,的确头疼. 不过对于现在在看文章的你,我还是想提倡多多尝试,耐心哈,别砸键盘......废话少说切入正题 一. ma ...
- CSS-07-CSS文本设置
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 富文本编辑器、全文检索和django发送邮件
1.富文本编辑器 1.1快速了解 借助富文本编辑器,网站的编辑人员能够像使用offfice一样编写出漂亮的.所见即所得的页面.此处以tinymce为例,其它富文本编辑器的使用也是类似的. 在虚拟环境中 ...