Win Unix Mac 等多種系統平台的宏定義

來源:互聯網
上載者:User

最近正在學習C++程式從 Windows 平台向 Unix 平台移植,參考了 qt 的宏定義檔案

 

Win Unix Mac 等多種系統平台的宏定義,平台移植時可做參考

#ifndef QGLOBAL_H<br />#define QGLOBAL_H</p><p>#define QT_VERSION_STR "3.1.2"<br />/*<br /> QT_VERSION is (major << 16) + (minor << 8) + patch.<br /> */<br />#define QT_VERSION 0x030102</p><p>/*<br /> The operating system, must be one of: (Q_OS_x)</p><p> MACX- Mac OS X<br /> MAC9- Mac OS 9<br /> MSDOS- MS-DOS and Windows<br /> OS2- OS/2<br /> OS2EMX- XFree86 on OS/2 (not PM)<br /> WIN32- Win32 (Windows 95/98/ME and Windows NT/2000/XP)<br /> CYGWIN- Cygwin<br /> SOLARIS- Sun Solaris<br /> HPUX- HP-UX<br /> ULTRIX- DEC Ultrix<br /> LINUX- Linux<br /> FREEBSD- FreeBSD<br /> NETBSD- NetBSD<br /> OPENBSD- OpenBSD<br /> BSDI- BSD/OS<br /> IRIX- SGI Irix<br /> OSF- HP Tru64 UNIX<br /> SCO- SCO OpenServer 5<br /> UNIXWARE- UnixWare 7, Open UNIX 8<br /> AIX- AIX<br /> HURD- GNU Hurd<br /> DGUX- DG/UX<br /> RELIANT- Reliant UNIX<br /> DYNIX- DYNIX/ptx<br /> QNX- QNX<br /> QNX6- QNX RTP 6.1<br /> LYNX- LynxOS<br /> BSD4- Any BSD 4.4 system<br /> UNIX- Any UNIX BSD/SYSV system<br />*/</p><p>#if defined(__APPLE__) && defined(__GNUC__)<br /># define Q_OS_MACX<br />#elif defined(__MACOSX__)<br /># define Q_OS_MACX<br />#elif defined(macintosh)<br /># define Q_OS_MAC9<br />#elif defined(__CYGWIN__)<br /># define Q_OS_CYGWIN<br />#elif defined(MSDOS) || defined(_MSDOS)<br /># define Q_OS_MSDOS<br />#elif defined(__OS2__)<br /># if defined(__EMX__)<br /># define Q_OS_OS2EMX<br /># else<br /># define Q_OS_OS2<br /># endif<br />#elif !defined(SAG_COM) && (defined(WIN64) || defined(_WIN64) || defined(__WIN64__))<br /># define Q_OS_WIN32<br /># define Q_OS_WIN64<br />#elif !defined(SAG_COM) && (defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__))<br /># define Q_OS_WIN32<br />#elif defined(__MWERKS__) && defined(__INTEL__)<br /># define Q_OS_WIN32<br />#elif defined(__sun) || defined(sun)<br /># define Q_OS_SOLARIS<br />#elif defined(hpux) || defined(__hpux)<br /># define Q_OS_HPUX<br />#elif defined(__ultrix) || defined(ultrix)<br /># define Q_OS_ULTRIX<br />#elif defined(sinix)<br /># define Q_OS_RELIANT<br />#elif defined(__linux__) || defined(__linux)<br /># define Q_OS_LINUX<br />#elif defined(__FreeBSD__)<br /># define Q_OS_FREEBSD<br /># define Q_OS_BSD4<br />#elif defined(__NetBSD__)<br /># define Q_OS_NETBSD<br /># define Q_OS_BSD4<br />#elif defined(__OpenBSD__)<br /># define Q_OS_OPENBSD<br /># define Q_OS_BSD4<br />#elif defined(__bsdi__)<br /># define Q_OS_BSDI<br /># define Q_OS_BSD4<br />#elif defined(__sgi)<br /># define Q_OS_IRIX<br />#elif defined(__osf__)<br /># define Q_OS_OSF<br />#elif defined(_AIX)<br /># define Q_OS_AIX<br />#elif defined(__Lynx__)<br /># define Q_OS_LYNX<br />#elif defined(__GNU_HURD__)<br /># define Q_OS_HURD<br />#elif defined(__DGUX__)<br /># define Q_OS_DGUX<br />#elif defined(__QNXNTO__)<br /># define Q_OS_QNX6<br />#elif defined(__QNX__)<br /># define Q_OS_QNX<br />#elif defined(_SEQUENT_)<br /># define Q_OS_DYNIX<br />#elif defined(_SCO_DS) /* SCO OpenServer 5 + GCC */<br /># define Q_OS_SCO<br />#elif defined(__USLC__) /* all SCO platforms + UDK or OUDK */<br /># define Q_OS_UNIXWARE<br /># define Q_OS_UNIXWARE7<br />#elif defined(__svr4__) && defined(i386) /* Open UNIX 8 + GCC */<br /># define Q_OS_UNIXWARE<br /># define Q_OS_UNIXWARE7<br />#else<br /># error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com"<br />#endif</p><p>#if defined(Q_OS_MAC9) || defined(Q_OS_MACX)<br /># define Q_OS_MAC<br />#endif</p><p>#if defined(Q_OS_MAC9) || defined(Q_OS_MSDOS) || defined(Q_OS_OS2) || defined(Q_OS_WIN32) || defined(Q_OS_WIN64)<br /># undef Q_OS_UNIX<br />#elif !defined(Q_OS_UNIX)<br /># define Q_OS_UNIX<br />#endif

 

 ===================================================================

拓展參考:

 

qglobal.h中可以得到的資訊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.