Russian Qt Forum
Ноябрь 01, 2024, 07:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ошибка компиляции приложения на Qt 5.3  (Прочитано 3574 раз)
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. Почему компилятор не видит, что там константа - непонятно. Подозреваю, что где-то неверный флаг сборки.

Хелп ми плиз!
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Ноябрь 11, 2014, 01:41 »

Цитировать
Error   1   error C2057: expected constant expression   C:\qt\5.3\msvc2013_64\include\QtCore\qiodevice.h
Это потому-что константа получает значение не на этапе компиляции, а при создании объекта
Записан

RSATom
Гость
« Ответ #2 : Ноябрь 11, 2014, 06:54 »

Это потому-что константа получает значение не на этапе компиляции, а при создании объекта
Это как Непонимающий

Я думаю что просто напросто где то есть
Код:
#define ReadOnly bla-bla
или
Код:
#define WriteOnly bla-bla
. Не обязательно в твоем коде, возможно в одной из подключаемых ранее библиотек.
Записан
Fat-Zer
Гость
« Ответ #3 : Ноябрь 11, 2014, 13:06 »

Это потому-что константа получает значение не на этапе компиляции, а при создании объекта
не в тему... это для не-статических-констант-членов-класса...

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

Сообщений: 2130



Просмотр профиля
« Ответ #4 : Ноябрь 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?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 23.