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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Связка QtCreator + MSVC compiler: ошибка компиляции  (Прочитано 6490 раз)
Hvzh
Гость
« : Июнь 01, 2016, 09:50 »

Есть некая библиотека, которую необходимо использовать в Qt-проекте. При попытке ее подключения возникает ошибка компиляции:

Код:
error C2371: 'int32_t': redefinition; different basic types
 D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdint.h(19): note: see declaration of 'int32_t'

Ругается вот на это определение в хидере:

Код:
#ifndef __int32_t_defined
#define __int32_t_defined
/**
* \brief 32 bit signed integer
*/
#ifdef _WIN32
Ошибка здесь ---> typedef long int32_t;
#else
typedef int int32_t;
#endif
#endif
/*@}*/

В файле stdint.h находим следующее:

Код:
typedef int                int32_t;

Если компилировать тестовый пример без использования Qt, то такой ошибки не возникает. Видимо, дело в каких-то ключах, вопрос в каких?
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Июнь 01, 2016, 09:53 »

Первое, что приходит в голову:
Код:
#define _WIN32
В файле проекта
Записан
Hvzh
Гость
« Ответ #2 : Июнь 01, 2016, 09:58 »

Первое, что приходит в голову:
Код:
#define _WIN32
В файле проекта
Не помогло...
Записан
Bepec
Гость
« Ответ #3 : Июнь 01, 2016, 10:06 »

Да и не поможет. Ведь в любом случае будет редефайн int32_t.
Скорее всего есть ещё 1 файлик в котором заявлен такой тип. Ну или что то с инклудами вы перемудрили.

PS гадать на кофейной гуще "что же это за библиотека", можно долго Улыбающийся
« Последнее редактирование: Июнь 01, 2016, 10:08 от Bepec » Записан
Hvzh
Гость
« Ответ #4 : Июнь 01, 2016, 10:11 »

PS гадать на кофейной гуще "что же это за библиотека", можно долго Улыбающийся
Бибилиотека специфичная: NxpRdLib. Используется для работы с бесконтактными картами Mifare различных модификаций. Я написал тест консольный используя один из их примеров, теперь нужно его развить и облачить в графический интерфейс.
Записан
Hvzh
Гость
« Ответ #5 : Июнь 01, 2016, 10:50 »

Решилось следующим образом:
"Попробуйте добавить заголовочный файл stdint.h как можно выше до включения заголовочных файлов Qt. После включения добавить:

Код:
#define __int32_t_defined

В этом случае сработает защита от повторного включения и int32_t не будет определен дважды."

Понять бы теперь при чем тут хидеры Qt?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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