zoukankan      html  css  js  c++  java
  • 【转载】判断当前使用的编译器及操作系统

    转自这里

    有时候编译需要多平台运行的代码,需要一些条件编译,经常忘记,这里专门记录一下,方便下次查找。
     
    • 编译器
    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查看。
  • 相关阅读:
    CAS在tomcat6.0.18下的SSO
    CAS在tomcat6.0.18下的SSO
    PL/SQL 0.几秒出结果,SQL效率一定高吗?
    优化大型复杂SQL
    C++ ProtoBuf小结
    protobuf c++入门
    Oracle_inner join,left join,right join,full join 的区别,用例子说明
    Linux_查看修改SWAP大小
    Oracle 优化器
    Oracle 行转列两种方法
  • 原文地址:https://www.cnblogs.com/tlz888/p/11737057.html
Copyright © 2011-2022 走看看