Я не знаю, почему ваш код не работает, но рекомендую вам использовать макросы в том же файле .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...
}
После моего тестирования этот метод является правильным. Хотя a.cpp и b.cpp будут отображаться в qtcreator одновременно, MakeFile, сгенерированный qmake, не будет содержать другие платформы.