我的程序使用哪个C ++编译器?

时间:2011-08-06 17:46:10

标签: c++ compiler-construction

我不是cpp编程方面的专家,而是一个庞大的编程世界的初学者,因为现在我们只安装任何IDE并从我们的程序开始。我开始使用CodeBlocks IDE但只是出于好奇想知道我的程序使用哪个编译器,因为它可以是4.3.2或4.0.8或者其他东西

我试着通过Build日志阅读它不存在,一个小谷歌也没有帮助。

是否有任何简单的命令可以在我的cpp程序中运行并检查我的IDE使用的是哪个编译器?

提前致谢。

4 个答案:

答案 0 :(得分:3)

您可以使用宏

__GNUC__
__GNUC_MINOR__
__GNUC_PATCHLEVEL__

请参阅http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html

其他编译器提供自己的宏,例如Microsoft的_MSC_VER

这是一个非常全面的列表,涵盖了数十个编译器:http://predef.sourceforge.net/precomp.htmlhttp://sourceforge.net/apps/mediawiki/predef/index.php?title=Compilers

答案 1 :(得分:2)

根据Codeblocks FAQ

  

事实上,它在很大程度上取决于使用的编译器插件。一些提供默认Code :: Blocks安装的是GNU GCC(MinGW / Cygwin),MS Visual C ++ Free Toolkit 2003,Borland的C ++编译器5.5,DigitalMars免费编译器,OpenWatcom,小型设备C编译器(SDCC)等。

答案 2 :(得分:2)

Code :: Blocks是一个非常通用的IDE,可以使用许多编译器。您甚至可以为每个项目使用不同的编译器。

根据您安装的版本(我有11月11日版本,在Windows下运行),当您加载项目时,可以转到“项目菜单” - > “构建选项”项目,您将看到您正在为该项目使用的编译器 - 记下它。关闭该窗口,然后转到“设置”菜单 - > “编译器和调试器......”项。在它显示的窗口中,确保从左侧列表中选择“全局编译器设置”图标。转到“工具链可执行文件”页面,您可以通过确保屏幕顶部的“选定编译器”下拉框与项目符号相匹配,从中获取项目正在使用的编译器可执行文件的确切路径“。

获取该信息的另一种方法是构建项目,然后切换到“构建日志”。命令行至少应该将编译器可执行文件作为其显示的文件名的一部分。

从编译器文件名中,您可以确定它是某种GCC衍生物还是其他东西(例如MSVC)。此时,它将成为编译器特定的,以找出您正在使用的版本。例如,如果它是GCC或端口,那么您可以运行:

<path and filename of compiler> --version

从命令提示符/ shell获取版本号。

如果是MSVC,那么只需运行:

<path and filename of compiler>

将显示版本号。

如果你想从编译器中做到这一点(虽然从技术上讲它将是预处理器),你需要知道上面的信息才能知道你的编译器是什么,因为你需要知道要检查的预处理器宏,哪些是编译器依赖。

从好的方面来说,Code :: Blocks可能会使用GCC,除非您在Windows上没有明确下载没有MinGW的版本。所以你可以使用Ben Voigt描述的方法。

编辑:缺少换行符隐藏编译器版本命令行

答案 3 :(得分:1)

可能不是,编程环境定义了各种宏(提供OS / SDK等版本),但这些宏通常由包含文件而不是编译器设置。

编译器可能会定义它自己的符号,但您必须检查编译器文档。

您可以检查路径并尝试使用“-v”或“/?”运行编译器(通常为cc或cl)标记以查看它报告的内容