我想使程序能够工作并在 WIN \ Linux 中进行编译。
我想了解有关运行程序的 OS 的信息。
此外,我想有一个变量来决定我要执行的代码。
我想到了一个经过预处理的代码,以输入我描述的控制变量。
所以,我必须有这样的东西:
# //a preprocess code to detect the os
# define controllingVar // ?
我使用C++;
最佳答案
您可以检查是否已定义WIN32宏:
#ifdef WIN32
// do windows stuff
#else
// do GNU/Linux stuff
#endif
请注意,在某些编译器上,您可能还需要检查
_WIN32
,如wikipedia中所述。举个例子:
#ifdef WIN32
void foo() {
std::cout << "I'm on Windows!\n";
}
#else
void foo() {
std::cout << "I'm on GNU/Linux!\n";
}
#endif
编辑:由于您要询问每个操作系统的不同
main
,因此以下示例:int main() {
#ifdef WIN32
// do whatever you want when executing in a Windows OS
#else
// do the same for GNU/Linux OS.
#endif
}
您也可以使用不同的
main
:#ifdef WIN32
int main() {
//windows main
}
#else
int main() {
//GNU/Linux main
}
#endif
关于c++ - C++上的跨平台编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9977884/