NSP*_*tor 4 c++ qt operating-system
我是QT的新手,我很难理解在执行main函数之前如何确定操作系统.我是这个领域的一个完整的新手,所以任何指导将不胜感激.
我想确定该程序是否在以下某个环境中运行:
Windows
Unix
Linux
Mac
Run Code Online (Sandbox Code Playgroud)
另外我如何在main函数中使用这些数据?
非常感谢
您可以使用预处理器定义来确定编译代码的平台.
例如,要检查您是否在Windows上:
#if (defined (_WIN32) || defined (_WIN64))
// windows code
#endif
Run Code Online (Sandbox Code Playgroud)
对于Linux:
#if (defined (LINUX) || defined (__linux__))
// linux code
#endif
Run Code Online (Sandbox Code Playgroud)
...对于您感兴趣的每个平台等等.这样,将删除与您定位的平台无关的代码.
以下是使用此代码的一些代码的示例:
#include <iostream>
int main()
{
#if (defined (_WIN32) || defined (_WIN64))
std::cout << "I'm on Windows!" << std::endl;
#elif (defined (LINUX) || defined (__linux__))
std::cout << "I'm on Linux!" << std::endl;
#endif
}
Run Code Online (Sandbox Code Playgroud)
Q_OS_AIX
Q_OS_ANDROID
Q_OS_BSD4
Q_OS_BSDI
Q_OS_CYGWIN
Q_OS_DARWIN
Q_OS_DGUX
Q_OS_DYNIX
Q_OS_FREEBSD
Q_OS_HPUX
Q_OS_HURD
Q_OS_IOS
Q_OS_IRIX
Q_OS_LINUX
Q_OS_LYNX
Q_OS_MAC
Q_OS_NETBSD
Q_OS_OPENBSD
Q_OS_OSF
Q_OS_OSX
Q_OS_QNX
Q_OS_RELIANT
Q_OS_SCO
Q_OS_SOLARIS
Q_OS_ULTRIX
Q_OS_UNIX
Q_OS_UNIXWARE
Q_OS_WIN32
Q_OS_WIN64
Q_OS_WIN
Q_OS_WINCE
Q_OS_WINPHONE
Q_OS_WINRT
Run Code Online (Sandbox Code Playgroud)