Проверьте конфигурацию цепочки инструментов во время компиляции

Есть ли хороший способ проверить конфигурацию компилятора (gcc) во время компиляции (либо из Makefile, либо из исходного файла C). Я хочу проверить, имеет ли используемый компилятор достаточную поддержку для компилируемого кода, а если нет, я хочу, чтобы он немедленно вышел из строя с четким сообщением с просьбой обновить свой набор инструментов.

Спасибо

Джон


person John    schedule 21.11.2012    source источник


Ответы (2)


Я бы порекомендовал наиболее часто используемые инструменты: autotools и CMake.

Autotools — это исторические инструменты для проектов GNU, представляющие собой набор сценариев, которые позволяют разработчику реализовать обнаружение функций с помощью сценариев M4 (autoconf). Существуют предопределенные макросы для общих тестов.

CMake — это более поздняя нативная цепочка инструментов C++, которая также включает поддержку наиболее распространенных проверок функций и позволяет разработчику реализовывать свои собственные тесты с помощью своего мощного языка.

Обратите внимание, что оба являются полными наборами инструментов для сборки, которые полностью заменяют написанные от руки make-файлы. Однако я считаю, что преимущества, которые они предоставляют с точки зрения кросс-платформенной поддержки и удобства сопровождения, стоят гораздо больше, чем уровень контроля, обеспечиваемый make-файлами.

person SirDarius    schedule 21.11.2012

Если решение обнаруженных проблем заключается в обновлении тулчейна, то проверьте __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ макросы, предопределенные компилятором.

person chill    schedule 21.11.2012
comment
Я не ищу версию набора инструментов, а скорее конфигурацию (использование потоков posix и т. д.). - person John; 21.11.2012