我无法让#ifdef规则在Windows上(64位)正常工作。 编译器版本为g++ 5.4.0。 我已经尝试过:
#ifdef _WIN32
#ifdef _WIN64
#ifdef OS_WINDOWS
我用以下命令编译了这个测试程序:
即使是像这样简单的代码:
#include <iostream>
int main()
{
std::cout << "you are on...";
#ifdef _WIN32
std::cout << "Windows" << std::endl;
#elif __linux__
std::cout << "Linux" << std::endl;
#endif
return 0;
}
输出结果为:
"you are on..."
......其余的都不会被计算在内。
echo | g++ -dM -E -
来查看您拥有哪些宏定义。 - VLL_WIN32
。 - DevSolar_WIN32
是适用于32位和64位Windows的标准。这是一个Windows的特性。 - selbie