Qt跨平台Linux5-使用DEFINES来实现条件编译
目录
一、问题来源
二、Qt pro中使用DEFINES来实现条件编译
1、pro中使用DEFINES来实现条件编译
2、 在生成的makefile中,可以看到编译宏
3、在源码中使用编译宏
3、解决方案
1、pro中使用DEFINES来实现
2、方法2
一、问题来源
从windows移植过来的Qt程序编译时会出现保护opengl头文件的错误。通过追踪错误来源,发现在QtGui模块的头文件中有包含GL/gl.h的部分。如何解决这一问题?
二、Qt pro中使用DEFINES来实现条件编译
1、pro中使用DEFINES来实现条件编译
在Qt的pro文件中使用DEFINES 来实现类似gcc -D的条件编译功能。
如,在pro中:
#定义条件编译宏LAOER
DEFINES += LAOER
#依赖编译宏LAOER的编译选项:
contains(DEFINES, LAOER){message(hello Laoer)
}
#与编译宏LAOER冲突的编译选项:
!contains(DEFINES, LAOER){message(hello Laoda)
}
2、 在生成的makefile中,可以看到编译宏
DEFINES = ... -DLAOER ...CXXFLAGS = ... $(DEFINES) ......$(CXX) -c $(CXXFLAGS) ...
3、在源码中使用编译宏
可以使用ifndef、ifdef条件编译
#ifndef LAOER
...
#endif#ifdef LAOER
...
#endif
3、解决方案
1、pro中使用DEFINES来实现
DEFINES += QT_NO_OPENGL
2、方法2
此时在include <QtGui> <QtWidgets>等命令前加上#define QT_NO_OPENGL,则可解决问题。
Qt跨平台Linux5-使用DEFINES来实现条件编译相关推荐
- 【Qt】pro中使用DEFINES来实现条件编译
1.pro中使用DEFINES来实现条件编译 在Qt的pro文件中使用DEFINES 来实现类似gcc -D的条件编译功能. 如,在pro中: #定义条件编译宏LAOER DEFINES += LAO ...
- QT跨平台项目开发经验(项目打包)
1.代码编写 1.1 代码编写简短,代码运行效率高,适当注释.一般一个大型的项目,代码的运行效率要求较高,一般需要秒级响应,甚至毫秒级. 1.2 建议使用命名空间::的形式来访问该命名空间中的变量和函 ...
- 为什么要用Qt开发(Qt跨平台应用开发)
一.为什么选择qt 1.跨平台,一次写代码多个平台编译.使跨平台应用达到各个平台原生应用的体验与流畅度.相比与java或c#在开发图形计算方面的软件时有非常好的使用体验与流畅度. 2.使用C++编程虽 ...
- 关于QT跨平台和编译器的理解
1.概述 Qt工具包是一个完整封装的C 类库(可以类比MFC),并且使用一次编写,随处编译的方式,可用于构建多平台图形用户界面. 2.QT跨平台 qt在不同操作系统下都实现有不同的底层类库,然后再暴露 ...
- 01-为什么要用Qt开发(Qt跨平台应用开发)
一.为什么选择qt 跨平台,一次写代码多个平台编译.使跨平台应用达到各个平台原生应用的体验与流畅度.相比与java或c#在开发图形计算方面的软件时有非常好的使用体验与流畅度. 使用C++编程虽然没有j ...
- Qt跨平台开发环境搭建
Qt跨平台开发环境搭建 1. 背景介绍 Qt是一个跨平台的C++图形用户界面应用程序框架.它提供给应用程序开发者丰富的图形用户界面所需的所有功能.而且,Qt很容易扩展,并且允许真正地组件编程. ...
- QT跨平台使用Web引擎
该例子支持Windows和Linux双系统实现,基于QT 5.14.2版本 Windows下安装webkit库,将下载的该压缩包拷贝至QT目录 qtwebkit-Windows-Windows_7-M ...
- QT pro 使用DEFINES来实现条件编译
#定义条件编译宏LAOER DEFINES += LAOER #依赖编译宏LAOER的编译选项: contains(DEFINES, LAOER){message(hello Laoer) } #与编 ...
- Qt跨平台开发编程技巧总结
一.数据类型 尽量使用Qt提供的数据类型,比如qint32,quint64等. typedef signed char qint8; /* 8 bit signed */ typedef unsign ...
最新文章
- [Python Machine Learning] 学习笔记之scikit-learn机器学习库
- cmd orcal 中文乱码
- Java多线程:Semaphore
- 【linux家常菜】redhat 6.5 安装yum
- 为 Sublime Text 3059 配置 PHP 编译环境
- Vue封装预约日期插件和发布到npm上
- 史上最奢华AirPods登场 售价直接翻四倍却还算良心
- 解决kali-2019.4中文乱码问题
- [Vue warn]: Cannot find element: #main
- Linux系统管理(6)——Linux下启动Redis服务的几种方法
- 错误代码: 1066 Not unique table/alias: #39;c#39;
- mysql事务 并发_Mysql关于事务并发带来的问题
- python有趣小程序-Python里的17个quot;骚操作”好玩有趣
- RK3288_Android7.1调试以太网ethernet
- java redis3.0_Java + Redis(第三章)
- ARM9 S3C2440 定时器中断
- 7、网友问答之ASCII字符传转换为数值-------------labview宝典
- SPSS统计分析与行业应用案例详解
- 上海CISSP认证培训课程圆满举办
- 计算机远程协助是什么,Windows7系统下远程协助和远程桌面有什么区别?
热门文章
- excel单元格斜线_学习记录-第二十四天(表姐excel从0到1-第1天)
- C#调用Media Player 控件播放音乐的常用方法及属性
- wordpress主题Vieu主题V4.5
- Python-Django毕业设计服装销售商城系统(程序+Lw)
- Unity模拟龙之谷人物行走简单控制
- linux下同一文件系统,Linux文件系统详解
- NTT入门 开拓者的卓识
- MMOARPG每周维护报告(七)-皮肤道具武器商城
- Asset Server 整理
- 数据:快来爬我呀!小白:ip被封了 数据:做个ip代理池吧!这样就可以继续爬我了