Компиляция GLAD с Clang и флагом -pedantic в WindowsC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Компиляция GLAD с Clang и флагом -pedantic в Windows

Сообщение Anonymous »

При компиляции GLAD с помощью Clang с использованием этих флагов: -pedantic -Wall -Wextra я получаю следующие предупреждения:

Код: Выделить всё

C:/Dev/glad/include\KHR/khrplatform.h:189:9: warning: extension used [-Wlanguage-extension-token]
189 | typedef __int32                 khronos_int32_t;
|         ^
C:/Dev/glad/include\KHR/khrplatform.h:190:18: warning: extension used [-Wlanguage-extension-token]
190 | typedef unsigned __int32        khronos_uint32_t;
|                  ^
C:/Dev/glad/include\KHR/khrplatform.h:191:9: warning: extension used [-Wlanguage-extension-token]
191 | typedef __int64                 khronos_int64_t;
|         ^
C:/Dev/glad/include\KHR/khrplatform.h:192:18: warning: extension used [-Wlanguage-extension-token]
192 | typedef unsigned __int64        khronos_uint64_t;
|
Эти предупреждения не возникают в Linux.
Похоже, это фрагмент кода, в котором генерируется предупреждение:

Код: Выделить всё

#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)

/*
* Win32
*/
typedef __int32                 khronos_int32_t;
typedef unsigned __int32        khronos_uint32_t;
typedef __int64                 khronos_int64_t;
typedef unsigned __int64        khronos_uint64_t;
#define KHRONOS_SUPPORT_INT64   1
#define KHRONOS_SUPPORT_FLOAT   1
Он используется только в том случае, если определен _WIN32, он использует нестандартные типы __intN.
Выше этого кусок кода — это еще один блок, который выглядит следующим образом:

Код: Выделить всё

#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)

/*
* Using 
*/
#include 
typedef int32_t                 khronos_int32_t;
typedef uint32_t                khronos_uint32_t;
typedef int64_t                 khronos_int64_t;
typedef uint64_t                khronos_uint64_t;
#define KHRONOS_SUPPORT_INT64   1
#define KHRONOS_SUPPORT_FLOAT   1
...и этот, похоже, использует стандартные целочисленные типы.

Мой вопрос:

Есть ли способ педантично скомпилировать без создания этих предупреждений?
Например, есть ли способ заставить вместо этого использовать второй блок кода, чтобы GLAD не использовал платформу -специфичные расширения?
Почему GLAD использует их нестандартные типы в первую очередь?
Этапы воспроизведения:
  • Сгенерируйте GLAD отсюда
  • Скопируйте src и включите каталоги в корень вашего проекта

    Создайте файл main.cpp в корне файла проект
  • Добавьте этот код в main.cpp

    Код: Выделить всё

    #include 
    int main() {}
    
  • выполните эту команду:

    Код: Выделить всё

    clang++ .\src\glad.c .\main.cpp -I .\include\ -pedantic
    
Это приведет к появлению упомянутых выше предупреждений.


Подробнее здесь: https://stackoverflow.com/questions/792 ... on-windows
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»