Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Aydario от Ноябрь 11, 2014, 00:13



Название: Ошибка компиляции приложения на Qt 5.3
Отправлено: Aydario от Ноябрь 11, 2014, 00:13
Добрый день всем!

Компилирую приложение на базе Qt 5.3. Если в каком-нибудь cpp-файле подключен например <QFile>, возникает ругань типа:

Error   1   error C2057: expected constant expression   C:\qt\5.3\msvc2013_64\include\QtCore\qiodevice.h


Конкретно, сборщику не нравится например вот это перечисление:

enum OpenModeFlag {
   NotOpen = 0x0000,
   ReadOnly = 0x0001,
   WriteOnly = 0x0002,
   ReadWrite = ReadOnly | WriteOnly,
   Append = 0x0004,
   Truncate = 0x0008,
   Text = 0x0010,
   Unbuffered = 0x0020
};

а именно - строка ReadWrite = ReadOnly | WriteOnly. Почему компилятор не видит, что там константа - непонятно. Подозреваю, что где-то неверный флаг сборки.

Хелп ми плиз!


Название: Re: Ошибка компиляции приложения на Qt 5.3
Отправлено: gil9red от Ноябрь 11, 2014, 01:41
Цитировать
Error   1   error C2057: expected constant expression   C:\qt\5.3\msvc2013_64\include\QtCore\qiodevice.h
Это потому-что константа получает значение не на этапе компиляции, а при создании объекта


Название: Re: Ошибка компиляции приложения на Qt 5.3
Отправлено: RSATom от Ноябрь 11, 2014, 06:54
Это потому-что константа получает значение не на этапе компиляции, а при создании объекта
Это как ???

Я думаю что просто напросто где то есть
Код:
#define ReadOnly bla-bla
или
Код:
#define WriteOnly bla-bla
. Не обязательно в твоем коде, возможно в одной из подключаемых ранее библиотек.


Название: Re: Ошибка компиляции приложения на Qt 5.3
Отправлено: Fat-Zer от Ноябрь 11, 2014, 13:06
Это потому-что константа получает значение не на этапе компиляции, а при создании объекта
не в тему... это для не-статических-констант-членов-класса...

Aydario, я не в курсе виндовых заморочек, но подозреваю, что Qt у тебя стоковый (mingw'шный), а собираешь проект ты msvc...


Название: Re: Ошибка компиляции приложения на Qt 5.3
Отправлено: __Heaven__ от Ноябрь 11, 2014, 13:31
Aydario, я не в курсе виндовых заморочек, но подозреваю, что Qt у тебя стоковый (mingw'шный), а собираешь проект ты msvc...
Qt там точно msvc
Error   1   error C2057: expected constant expression   C:\qt\5.3\msvc2013_64\include\QtCore\qiodevice.h
А студия 13? Собираете проект как x64?