admin管理员组文章数量:1794759
Qt实现在不同系统下,执行不同的代码(windows和linux下)
系统1:ThinkPad T570、windows10、Qt5.12.2(Qt Creater 4.8.2) 系统2:NVIDIA Tegra X2 、Ubuntu 16.04LTS、QT5.5.1(Qt Creater 3.5.1) 一、如果是在.pro或.pri文件中: Qt在pro或pri文件的语法中只能区分出windows、Unix和Mac三类操作系统,linux应归属于Unix类操作系统之中,一般使用如下标识符: win32, unix, macx 例: 在.pro文件添加代码:
win32{ LIBS +=-L$$PWD -ldemura #in windows system获取当前路径下的demura静态库 }else{ LIBS +=-L./ -ldemora #in linux system获取当前路径下的demora静态库 }二、如果是在.h和.cpp文件中: 例:在不同系统下获取路径:
QString wstrFilePath; #if defined(Q_OS_LINUX) wstrFilePath = qApp->applicationDirPath() + "/../Tx2Oled/2_CAL_G.dat" ;//in linux #else wstrFilePath = qApp->applicationDirPath() + "/../../Tx2Oled/2_CAL_G.dat" ;//in windows #endifqt定义的各个系统的宏定义: Q_OS_AIX Defined on AIX. Q_OS_ANDROID Defined on Android. Q_OS_BSD4 Defined on Any BSD 4.4 system. Q_OS_BSDI Defined on BSD/OS. Q_OS_CYGWIN Defined on Cygwin. Q_OS_DARWIN Defined on Darwin-based operating systems such as macOS, iOS, watchOS, and tvOS. Q_OS_DGUX Defined on DG/UX. Q_OS_DYNIX Defined on DYNIX/ptx. Q_OS_FREEBSD Defined on FreeBSD. Q_OS_HPUX Defined on HP-UX. Q_OS_HURD Defined on GNU Hurd. Q_OS_IOS Defined on ios. Q_OS_IRIX Defined on SGI Irix. Q_OS_LINUX Defined on Linux. Q_OS_LYNX Defined on LynxOS. Q_OS_MAC Deprecated synonym for Q_OS_DARWIN. Do not use. Q_OS_MACOS Defined on macOS. Q_OS_NETBSD Defined on NetBSD. Q_OS_OPENBSD Defined on OpenBSD. Q_OS_OSF Defined on HP Tru64 UNIX. Q_OS_OSX Deprecated synonym for Q_OS_MACOS. Do not use. Q_OS_QNX Defined on QNX Neutrino. Q_OS_RELIANT Defined on Reliant UNIX. Q_OS_SCO Defined on SCO OpenServer 5. Q_OS_SOLARIS Defined on Sun Solaris. Q_OS_TVOS Defined on tvOS. Q_OS_ULTRIX Defined on DEC Ultrix. Q_OS_UNIX Defined on Any UNIX BSD/SYSV system. Q_OS_UNIXWARE Defined on UnixWare 7, Open UNIX 8. Q_OS_WATCHOS Defined on watchOS. Q_OS_WIN32 Defined on 32-bit and 64-bit versions of Windows. Q_OS_WIN64 Defined on 64-bit versions of Windows. Q_OS_WIN Defined on all supported versions of Windows. That is, if Q_OS_WIN32, Q_OS_WIN64, or Q_OS_WINRT is defined. Q_OS_WINPHONE Defined on Windows Phone 8. Q_OS_WINRT Defined for Windows Runtime (Windows Store apps) on Windows 8, Windows RT, and Windows Phone 8.
例:不同模式(release和debug)的区分:
#if defined (QT_DEBUG) qDebug() << "debug mode"; #else qDebug() << "release mode"; #endif版权声明:本文标题:Qt实现在不同系统下,执行不同的代码(windows和linux下) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686869030a112618.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论