Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как устранить множественное объявление типов

Ответить
Настройки темы
C/C++ - Как устранить множественное объявление типов

Аватара для Apock

Пользователь


Сообщения: 75
Благодарности: 3

Профиль | Отправить PM | Цитировать


Всем доброго времени суток. Есть у меня исходник консольного приложения для Visual Studio на C. Я пытаюсь переписать его под С++ и VCL на С++ Builder 10.3.
В своей работе приложение использует OpenCL. Вот на этом этапе у меня возникла сложность. В cl_platform.h есть такие строки:
Код: Выделить весь код
#include <stdint.h>

/* scalar types  */
typedef int8_t          cl_char;
typedef uint8_t         cl_uchar;
typedef int16_t         cl_short    __attribute__((aligned(2)));
typedef uint16_t        cl_ushort   __attribute__((aligned(2)));
typedef int32_t         cl_int      __attribute__((aligned(4)));
typedef uint32_t        cl_uint     __attribute__((aligned(4)));
typedef int64_t         cl_long     __attribute__((aligned(8)));
typedef uint64_t        cl_ulong    __attribute__((aligned(8)));

typedef uint16_t        cl_half     __attribute__((aligned(2)));
typedef float           cl_float    __attribute__((aligned(4)));
typedef double          cl_double   __attribute__((aligned(8)));
И при компиляции я получаю следующее:
Цитата:
[bcc32 Error] stdint.h(231): E2238 Multiple declaration for 'LONGLONG'
Full parser context
oclengine.cpp(19): #include CL/cl.h
cl.h(30): #include CL/cl_platform.h
cl_platform.h(211): #include c:\program files (x86)\embarcadero\studio\20.0\include\windows\crtl\stdint.h
[bcc32 Error] winnt.h(796): E2344 Earlier declaration of 'LONGLONG'
Full parser context
oclengine.cpp(19): #include CL/cl.h
cl.h(30): #include CL/cl_platform.h
cl_platform.h(211): #include c:\program files (x86)\embarcadero\studio\20.0\include\windows\crtl\stdint.h
Конфликтующая строка в stdint.h using std::int64_t;
в winnt.h typedef __int64 LONGLONG;

Никак не могу понять решение проблемы. Менять родной код cl_platform стрёмно, а лезть в winnt и stdint вообще опасно)). В одном месте была у меня подобная проблема. Помогла замена #include <stdint.h> на <cstdint>. Но здесь не сработало.
Буду благодарен за любые идеи по этому вопросу.

-------
Говорят, что производители чипсетов не стоят на месте. Чушь. Как стоял завод корпорации 3dfx на перекрёстке 7-й авеню и 6-й дежавю, так и стоит.


Отправлено: 22:28, 20-01-2020

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как устранить множественное объявление типов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как устранить проблему Над.Ник. Лечение систем от вредоносных программ 16 18-02-2012 01:21
Как правильно написать объявление в газету??? Antoniooo Флейм 7 04-10-2009 19:56
[решено] Объявление переменной DenNC AutoIt 3 28-06-2009 13:58
объявление при открытии папки DenSha Microsoft Windows NT/2000/2003 2 28-05-2007 16:18
Как найти и устранить причину? 220 Microsoft Windows 2000/XP 2 07-11-2006 07:47




 
Переход