Какой компилятор C ++ использует моя программа? - PullRequest
8 голосов
/ 06 августа 2011

Я не очень разбираюсь в программировании на cpp, скорее начинающий в огромном мире программирования, так как в наши дни мы просто устанавливаем любую IDE и начинаем с наших программ в ней.Я начал использовать IDE CodeBlocks, но просто из любопытства хотел узнать, какой компилятор использует моя программа, так как это может быть 4.3.2 или 4.0.8 или, может быть, что-то еще

Я попытался прочитать журналы сборки, это не было 't, маленький гугл тоже не помог.

Есть ли какая-нибудь простая команда, которую я могу запустить в моей программе cpp и проверить, какой компилятор использует моя IDE?

Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 06 августа 2011

Вы можете использовать макросы

__GNUC__
__GNUC_MINOR__
__GNUC_PATCHLEVEL__

См. http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html

Другие компиляторы предоставляют свои собственные макросы, например Microsoft _MSC_VER

Вот очень полный список, охватывающий десятки компиляторов: http://predef.sourceforge.net/precomp.html и http://sourceforge.net/apps/mediawiki/predef/index.php?title=Compilers

2 голосов
/ 07 августа 2011

Code :: Blocks - это очень универсальная среда разработки, которая может использовать множество компиляторов.Вы даже можете иметь разные компиляторы для каждого проекта.

В зависимости от того, какую версию вы установили (у меня сборка от 11 ноября 2009 года, работающая под Windows), когда вы загрузили проект, вы можете перейти в «Меню проекта»."-> Элемент" Параметры сборки ", и вы увидите, какой компилятор вы используете для этого проекта - запомните это.Закройте это окно и перейдите в меню «Настройки» -> «Компилятор и отладчик ...».В появившемся окне убедитесь, что у вас выбран значок «Глобальные настройки компилятора» из списка слева.Перейдите на страницу «Исполняемые файлы цепочки инструментов», с которой вы можете получить точный путь к исполняемому файлу компилятора, который используется вашим проектом, убедившись, что раскрывающийся список «Выбранный компилятор» в верхней части экрана соответствует указанному для вашего проекта ».

Другой способ получить эту информацию - построить свой проект, а затем переключиться на «Журнал сборки». В командной строке должен быть хотя бы исполняемый файл компилятора как часть отображаемого имени файла.

Из имени файла компилятора вы можете определить, является ли он какой-либо производной GCC или чем-то еще (например, MSVC). На этом этапе становится специфичным для компилятора выяснить, какую версию вы используете. Например, если это GCCили порт, то вы можете запустить:

<path and filename of compiler> --version

из командной строки / оболочки, чтобы получить номер версии.

Если это MSVC, то просто выполните:

<path and filename of compiler>

отобразит номер версии.

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

С положительной стороны, Code :: Blocks этовероятно, будет использовать GCC, если вы специально не загрузили версию без MinGW для Windows.Так что вы, вероятно, можете использовать метод, описанный Беном Фойгтом.

Редактировать: пропущенные разрывы строк скрывали командные строки версии компилятора

2 голосов
/ 06 августа 2011

Согласно FAQ по кодовым блокам :

На самом деле это во многом зависит от используемого плагина компилятора.Некоторые из них поставляются с установкой Code :: Blocks по умолчанию: GNU GCC (MinGW / Cygwin), MS Visual C ++ Free Toolkit 2003, Borland C ++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom, Small Device C Compiler (SDCC) и другие.

1 голос
/ 06 августа 2011

Вероятно, нет, существуют различные макросы, определяемые средой программирования (с указанием версии OS / SDK и т. Д.), Но они обычно устанавливаются с помощью включаемых файлов, а не компилятора.

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

Вы можете проверить путь и попробовать запустить компилятор (обычно это cc или cl) с "-v" или "/?"флаг, чтобы увидеть, что он сообщает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...