我的程序使用的是哪个c++编译器

Which C++ compiler is my program using?

本文关键字:c++ 编译器 程序 我的      更新时间:2023-10-16

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

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

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

可以使用宏

__GNUC__
__GNUC_MINOR__
__GNUC_PATCHLEVEL__

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

其他编译器提供它们自己的宏,例如微软的_MSC_VER

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

根据Codeblocks FAQ:

事实上,

很大程度上取决于所使用的编译器插件。一些默认的Code::Blocks安装提供了GNU GCC (MinGW/Cygwin), MS Visual c++ Free Toolkit 2003, Borland's c++ Compiler 5.5, DigitalMars Free Compiler。, OpenWatcom, Small Device C Compiler (SDCC)等。

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

根据你安装的版本(我有2009年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描述的方法。

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

可能不是,编程环境(给出OS/sdk的版本等)定义了各种宏,但这些宏通常是由include文件而不是编译器设置的。

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

您可以检查路径并尝试运行带有"-v"或"/?"标志的编译器(通常是cc或cl),以查看它报告的内容