Russian Qt Forum

Компиляторы и платформы => Компиляторы => Тема начата: Hvzh от Июнь 01, 2016, 09:50



Название: Связка QtCreator + MSVC compiler: ошибка компиляции
Отправлено: 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, то такой ошибки не возникает. Видимо, дело в каких-то ключах, вопрос в каких?


Название: Re: Связка QtCreator + MSVC compiler: ошибка компиляции
Отправлено: __Heaven__ от Июнь 01, 2016, 09:53
Первое, что приходит в голову:
Код:
#define _WIN32
В файле проекта


Название: Re: Связка QtCreator + MSVC compiler: ошибка компиляции
Отправлено: Hvzh от Июнь 01, 2016, 09:58
Первое, что приходит в голову:
Код:
#define _WIN32
В файле проекта
Не помогло...


Название: Re: Связка QtCreator + MSVC compiler: ошибка компиляции
Отправлено: Bepec от Июнь 01, 2016, 10:06
Да и не поможет. Ведь в любом случае будет редефайн int32_t.
Скорее всего есть ещё 1 файлик в котором заявлен такой тип. Ну или что то с инклудами вы перемудрили.

PS гадать на кофейной гуще "что же это за библиотека", можно долго :)


Название: Re: Связка QtCreator + MSVC compiler: ошибка компиляции
Отправлено: Hvzh от Июнь 01, 2016, 10:11
PS гадать на кофейной гуще "что же это за библиотека", можно долго :)
Бибилиотека специфичная: NxpRdLib. Используется для работы с бесконтактными картами Mifare различных модификаций. Я написал тест консольный используя один из их примеров, теперь нужно его развить и облачить в графический интерфейс.


Название: Re: Связка QtCreator + MSVC compiler: ошибка компиляции
Отправлено: Hvzh от Июнь 01, 2016, 10:50
Решилось следующим образом:
"Попробуйте добавить заголовочный файл stdint.h как можно выше до включения заголовочных файлов Qt. После включения добавить:

Код:
#define __int32_t_defined

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

Понять бы теперь при чем тут хидеры Qt?