QT、c/c++通过宏自动判断平台
- Chapter1 QT、c/c++通过宏自动判断平台
Chapter1 QT、c/c++通过宏自动判断平台
原文链接:https://blog.csdn.net/qq_32348883/article/details/123063830
背景
为了更好的进行跨平台移植、编译、调试。
具体操作
宏操作
#ifdef _WIN32//define something for Windows (32-bit and 64-bit, this part is common)#ifdef _WIN64//define something for Windows (64-bit only)#else//define something for Windows (32-bit only)#endif
#elif __ANDROID__// do android something
#elif __linux__// do linux something
#elif __unix__ // all unices not caught above// do Unix something
#elif defined(_POSIX_VERSION)// do POSIX something
#else#error "Unknown compiler"
#endif
or 代码内操作
注意: 条件没有使能的编译内容,编译器不会对该内容进行错误检查。
#if defined(_WIN32)std::cout << "this is win32 compiler" << endl;
#elif defined(_WIN64)std::cout << "this is win64 compiler" << endl;
#elif defined(__linux__)std::cout << "this is linux compiler" << endl;
#elif defined(__unix__)std::cout << "this is unix compiler" << endl;
#elif defined(__ANDROID__)std::cout << "this is android compiler" << endl;
#endif
附注QT .pro自动判断平台
QT 工程.pro内的宏自定义判断平台
unix { TARGET = appname
}
macx {TARGET = appname2
}
win32 {TARGET = appname3
}