我想为我的项目配置一个Qt.pro文件,我这样写我的pro文件:
unix {
SOURCES += a.cpp
}
win32 {
SOURCES += b.cpp
}
但是当我在Windows中时,qtcreator中包含了a.cpp和b.cpp,我看起来有些解释与我的相同,请参见https://doc.qt.io/qt-5/qmake-language.html,我不知道哪里出了错?什么是正确的配置?我的Qt版本是5.12.0
答案 0 :(得分:0)
我不知道为什么您的代码不起作用,但建议您使用同一 .cpp / .h文件中的宏来检查当前平台,因为您可能具有通用功能这些平台。
例如:
#ifdef Q_OS_WIN32 // or Q_OS_WIN64. the code/function for Windows
void fun()
{
commonFunction();
}
#endif
#ifdef Q_OS_LINUX // or Q_OS_UNIX ...
void fun()
{
commonFunction();
}
#endif
void commonFunction()
{
//...
}
或
void fun()
{
#ifdef Q_OS_WIN64
// code for windows
#endif
#ifdef Q_OS_LINUX
// code for linux
#endif
// a common code...
}
答案 1 :(得分:0)
经过我的测试,这种方法是正确的。尽管a.cpp和b.cpp将同时显示在qtcreator中,但qmake生成的MakeFile将不包含其他平台。