Russian Qt Forum

Qt => Общие вопросы => Тема начата: xintrea от Апрель 22, 2016, 21:21



Название: Почему в *.pro файле не срабатывает else для greaterThan() ?
Отправлено: xintrea от Апрель 22, 2016, 21:21
Написал в *.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.


Название: Re: Почему в *.pro файле не срабатывает else для greaterThan() ?
Отправлено: kambala от Апрель 22, 2016, 21:47
{ должна находиться на строке с условием


Название: Re: Почему в *.pro файле не срабатывает else для greaterThan() ?
Отправлено: panAlexey от Апрель 23, 2016, 20:12
{ должна находиться на строке с условием
Фигово, когда такие ограничения.
Поставил лишний перевод строки и привет - бага.
Ненадежно.


Название: Re: Почему в *.pro файле не срабатывает else для greaterThan() ?
Отправлено: Bepec от Апрель 23, 2016, 22:01
Зато быстро и удобно кодиться :D


Название: Re: Почему в *.pro файле не срабатывает else для greaterThan() ?
Отправлено: Old от Апрель 23, 2016, 22:03
Зато быстро и удобно кодиться :D
Т.е. если бы таких проколов не было, кодилось бы медленней и неудобней? :)


Название: Re: Почему в *.pro файле не срабатывает else для greaterThan() ?
Отправлено: Bepec от Апрель 23, 2016, 22:17
Угу.
В разы проще закодить "если в строке с условием есть {", чем анализировать следующую строку :D


Название: Re: Почему в *.pro файле не срабатывает else для greaterThan() ?
Отправлено: lit-uriy от Апрель 24, 2016, 19:43
это известный косяк qmake, он ещё иногда и к пробелам не равнодушен