有时候编译需要多平台运行的代码,需要一些条件编译,经常忘记,这里专门记录一下,方便下次查找。
 
  • 编译器
GCC
  1. #ifdef __GNUC__
  2. #if __GNUC__ >= 3 // GCC3.0以上
 
Visual C++
  1. #ifdef _MSC_VER
  2. #if _MSC_VER >=1000 // VC++4.0以上
  3. #if _MSC_VER >=1100 // VC++5.0以上
  4. #if _MSC_VER >=1200 // VC++6.0以上
  5. #if _MSC_VER >=1300 // VC2003以上
  6. #if _MSC_VER >=1400 // VC2005以上
 
Borland C++
  1. #ifdef __BORLANDC__
 
Cygwin
  1. #ifdef __CYGWIN__
  2. #ifdef __CYGWIN32__    //
 
 
MinGW
  1. #ifdef __MINGW32__
 
  • 操作系统
Windows
  1. #ifdef _WIN32    //32bit
  2. #ifdef _WIN64    //64bit
  3. #ifdef _WINDOWS     //图形界面程序
  4. #ifdef _CONSOLE     //控制台程序
  5. //Windows(95/98/Me/NT/2000/XP/Vista)和Windows CE都定义了
  6. #if (WINVER >= 0x030a)     // Windows 3.1以上
  7. #if (WINVER >= 0x0400)     // Windows 95/NT4.0以上
  8. #if (WINVER >= 0x0410)     // Windows 98以上
  9. #if (WINVER >= 0x0500)     // Windows Me/2000以上
  10. #if (WINVER >= 0x0501)     // Windows XP以上
  11. #if (WINVER >= 0x0600)     // Windows Vista以上
  12. //_WIN32_WINNT 内核版本
  13. #if (_WIN32_WINNT >= 0x0500) // Windows 2000以上
  14. #if (_WIN32_WINNT >= 0x0501) // Windows XP以上
  15. #if (_WIN32_WINNT >= 0x0600) // Windows Vista以上
 
UNIX
  1. #ifdef __unix
  2. //or
  3. #ifdef __unix__
 
Linux
  1. #ifdef __linux
  2. //or
  3. #ifdef __linux__
 
FreeBSD
  1. #ifdef __FreeBSD__
 
NetBSD
  1. #ifdef __NetBSD__
 
  • Qt特有

<qtglobal.h>定义了Q_OS_*和Q_WS_*系列用于判断操作系统。Q_CC_*系列判断编译器。

具体的可以在Qt Assistant里索引qtglobal.h查看。
 

最新文章

  1. python3 登录接口
  2. windows系统调用 进程快照
  3. iOS 从相机或相册获取图片并裁剪
  4. 移动设备上的媒体查询 CSS media queries for mobile device
  5. angularjs webstorm 单元测试 Package.json
  6. 如何在WIN7中关闭JAVA自动更新
  7. Java菜鸟学习笔记--Exception篇(一):异常简介
  8. 设置android:supportsRtl=&amp;quot;true&amp;quot;无效问题
  9. 声明寄存器ROM
  10. POJ 3713 Transferring Sylla【Tarjan求割点】
  11. linux 生成密钥,并向git服务器导入公钥
  12. js模拟浏览器加载效果 pace.js 中文官方文档
  13. CH4401 蒲公英
  14. gtk_init()
  15. VC++ MFC如何生成一个可串行化的类
  16. group by 和count的联合使用问题 [转]
  17. SSH 获取GET/POST参数
  18. 快速用梯度下降法实现一个Logistic Regression 分类器
  19. 关于C# 委托(delegate)与事件(event)的用法及事例
  20. 网络I/O虚拟化,SR-IOV技术

热门文章

  1. Objective-C基础笔记(6)Block
  2. 什么是猴子补丁(monkey patch)
  3. C#使用WebBrowser对指定网页截图
  4. Android实战简易教程-第二十三枪(基于Baas的用户注冊和登录模块实现!)
  5. Controller//控制器
  6. LINUX创建用户的命令
  7. C++卷积神经网络实例:tiny_cnn代码具体解释(7)——fully_connected_layer层结构类分析
  8. Windows App开发之集合控件与数据绑定
  9. 【ZZ】Visual C++ 6.0 精简安装版(支持VA、ICC 等等安装)
  10. Canvas学习笔记——弹动