LINUX.ORG.RU

Почему в *.pro файле не срабатывает else для greaterThan() ?

 , ,


0

1

Написал в *.pro файле такую конструкцию:

# Enable C++11
greaterThan(QT_MAJOR_VERSION, 4)
{
  CONFIG += c++11
} else {                              <----- Это строка №17
  QMAKE_CXXFLAGS += -std=c++11
}


И при вызове qmake выдается такая ошибка:

project.pro:17: Unexpected 'else'.


Смотрю в документацию:
http://doc.qt.io/qt-5/qmake-test-function-reference.html

Ничего толком не написано для greaterThan() и похожей на нее функции проверки equals(). Но для equals() там же есть пример:

equals(TEMPLATE, subdirs) {
    prepareRecursiveTarget(check)
} else {
    check.commands = echo hello user
}


То есть у функций проверок условий вроде как должна быть возможность задания альтернативной ветки.

И в интернете вижу что альтернативное условие для greaterThan() можно задавать, например тут:
http://stackoverflow.com/questions/16948382/how-to-enable-c11-in-qt-creator

Но у меня оно не работает. Почему? Версия Qt 5.4.2.

★★★★★

Надо так:

greaterThan(QT_MAJOR_VERSION, 4) {
  CONFIG += c++11
} else {                              <----- Это строка №17
  QMAKE_CXXFLAGS += -std=c++11
}
Обратите внимание на открывающую скобку.

Weres ★★★
()
Ответ на: комментарий от Weres

Имеешь в виду, что открывающаяся скобка «{» должна находиться на строке с условием?

Оно сработало... Какой ужос. Я думал, что такого бреда в наши дни уже нигде не осталось кроме bash.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Радуйся что хоть так можно, qmake все равно хорош. Ищи позитив ;)

I-Love-Microsoft ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.