admin管理员组文章数量:1431868
系统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
#endif
qt定义的各个系统的宏定义:
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.betaflare.com/biancheng/1740918401a2307495.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论