<编译>条件编译——判断当前使用的编译器及操作系统
2024-08-30 09:17:20
有时候编译需要多平台运行的代码,需要一些条件编译,经常忘记,这里专门记录一下,方便下次查找。
- 编译器
GCC
#ifdef __GNUC__
#if __GNUC__ >= 3 // GCC3.0以上
Visual C++
#ifdef _MSC_VER
#if _MSC_VER >=1000 // VC++4.0以上
#if _MSC_VER >=1100 // VC++5.0以上
#if _MSC_VER >=1200 // VC++6.0以上
#if _MSC_VER >=1300 // VC2003以上
#if _MSC_VER >=1400 // VC2005以上
Borland C++
#ifdef __BORLANDC__
Cygwin
#ifdef __CYGWIN__
#ifdef __CYGWIN32__ //
MinGW
#ifdef __MINGW32__
- 操作系统
Windows
#ifdef _WIN32 //32bit
#ifdef _WIN64 //64bit
#ifdef _WINDOWS //图形界面程序
#ifdef _CONSOLE //控制台程序
//Windows(95/98/Me/NT/2000/XP/Vista)和Windows CE都定义了
#if (WINVER >= 0x030a) // Windows 3.1以上
#if (WINVER >= 0x0400) // Windows 95/NT4.0以上
#if (WINVER >= 0x0410) // Windows 98以上
#if (WINVER >= 0x0500) // Windows Me/2000以上
#if (WINVER >= 0x0501) // Windows XP以上
#if (WINVER >= 0x0600) // Windows Vista以上
//_WIN32_WINNT 内核版本
#if (_WIN32_WINNT >= 0x0500) // Windows 2000以上
#if (_WIN32_WINNT >= 0x0501) // Windows XP以上
#if (_WIN32_WINNT >= 0x0600) // Windows Vista以上
UNIX
#ifdef __unix
//or
#ifdef __unix__
Linux
#ifdef __linux
//or
#ifdef __linux__
FreeBSD
#ifdef __FreeBSD__
NetBSD
#ifdef __NetBSD__
- Qt特有
<qtglobal.h>定义了Q_OS_*和Q_WS_*系列用于判断操作系统。Q_CC_*系列判断编译器。
具体的可以在Qt Assistant里索引qtglobal.h查看。
最新文章
- python3 登录接口
- windows系统调用 进程快照
- iOS 从相机或相册获取图片并裁剪
- 移动设备上的媒体查询 CSS media queries for mobile device
- angularjs webstorm 单元测试 Package.json
- 如何在WIN7中关闭JAVA自动更新
- Java菜鸟学习笔记--Exception篇(一):异常简介
- 设置android:supportsRtl=&;quot;true&;quot;无效问题
- 声明寄存器ROM
- POJ 3713 Transferring Sylla【Tarjan求割点】
- linux 生成密钥,并向git服务器导入公钥
- js模拟浏览器加载效果 pace.js 中文官方文档
- CH4401 蒲公英
- gtk_init()
- VC++ MFC如何生成一个可串行化的类
- group by 和count的联合使用问题 [转]
- SSH 获取GET/POST参数
- 快速用梯度下降法实现一个Logistic Regression 分类器
- 关于C# 委托(delegate)与事件(event)的用法及事例
- 网络I/O虚拟化,SR-IOV技术
热门文章
- Objective-C基础笔记(6)Block
- 什么是猴子补丁(monkey patch)
- C#使用WebBrowser对指定网页截图
- Android实战简易教程-第二十三枪(基于Baas的用户注冊和登录模块实现!)
- Controller//控制器
- LINUX创建用户的命令
- C++卷积神经网络实例:tiny_cnn代码具体解释(7)——fully_connected_layer层结构类分析
- Windows App开发之集合控件与数据绑定
- 【ZZ】Visual C++ 6.0 精简安装版(支持VA、ICC 等等安装)
- Canvas学习笔记——弹动