Почему файл Qt .pro выдает ошибку для платформы, даже если он не выбран или не упомянут?
В моем файле Qt .pro следующее выдает ошибку компиляции с ОС Windows:
!win32
{
QMAKE_CXXFLAGS += -Wno-unused-parameter -Wno-missing-field-initializers -Wimplicit-fallthrough=0
}
Согласно руководству по qmake, платформа Windows должна обходить вышеуказанный блок. Тем не менее, он выдает ошибку, так как выполняет проверку работоспособности даже для Windows, хотя это и не применимо.
Есть и другие подобные примеры.
Как исправить такие ошибки?
1 ответ
В этом случае проблема возникает из-за синтаксиса Qt QMake. По этой ссылке QMake Advanced Usage
Области действия состоят из условия, за которым следует открывающая скобка в той же строке, последовательность команд и определений и закрывающая скобка в новой строке. Открывающая скобка должна быть написана в той же строке, что и условие. Области могут быть объединены для включения более одного условия;
Синтаксис:
<condition> {
0<command or definition>
...
}
.pro изменение файла:
!win32 {
QMAKE_CXXFLAGS += -Wno-unused-parameter -Wno-missing-field-initializers -Wimplicit-fallthrough=0
} # compiles fine