LINUX.ORG.RU

Неуловимый ansidecl.h

 , ,


0

2

Добрый день, ЛОР.

Я одно время был уверен, что это стандартный файл (там есть полезные макросы, для определения версии компилятора, например). Но сначала я его не нашёл в относительно современном MinGW. А теперь и GCC в Fedora 23 (GCC 10.2.1, glibc 2.32-4) ругается на отсутствие ansidecl.h.

Его больше нет? Или надо откуда-то отдельно ставить?

★★★★★

Может быть он в <libiberty/ansidecl.h>.

xaizek ★★★★★
()

Я наверное посоветую плохую вещь, но судя по его содержимому, то ты можешь его просто скопировать его к себе в проект и время от времени синхронизировать с GCC. Конечно, если проект у тебя под GPL.

Если нет, то я не вижу в нём ничего особенного. Переписать под нужные условия можно за минут 15.

a1batross ★★★★★
()
Последнее исправление: a1batross (всего исправлений: 1)

MinGW

незаметный вантузятник незаметен

anonymous
()

там есть полезные макросы, для определения версии компилятора, например

в самом компиляторе же есть это.

Например, в gcc __GNUC__

https://gcc.godbolt.org/z/PPGPP16M5

А так есть __cplusplus в С++ и __STDC_VERSION__ в С для определения стандарта.

Ещё есть https://en.cppreference.com/w/cpp/feature_test для определения какой-то конкретной возможности…

fsb4000 ★★★★★
()
Ответ на: комментарий от fsb4000

Например, в gcc __GNUC__

И __GNUC_MINOR__ с __GNUC_PATCHLEVEL__, ага. В принципе, я уже начал склоняться к мысли, что с ними работать даже более гибко, чем с GCC_VERSION, например, если надо выдать информацию о версии в человекочитаемом виде…

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 2)
24 августа 2022 г.
Ответ на: комментарий от X512

Да, забыл написать: это оказался пакет binutils-devel (в других дистрибутивах binutils-dev).

Вопрос с MinGW остался открытым. Но я в итоге, как и написал выше, для определения версии перешёл на __GNUC__, __GNUC_MINOR__ и __GNUC_PATCHLEVEL__. Надо будет ещё __cplusplus прикрутить, чтобы от GCC не зависеть…

hobbit ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.