Linux有没有更快的c++编译器

Is there a faster c++ compiler for Linux?

本文关键字:c++ 编译器 有没有 Linux      更新时间:2023-10-16

在C中,我可以使用tcc,但找不到任何C++的东西。

在Eclipse中用Gcc更改的一个.cpp文件需要大约5秒的时间来重新编译,这太荒谬了。我不在乎代码如何执行,我只需要一个更快的测试周期。

有什么想法可以让代码编译得更快吗?

对于我速度不太快的笔记本电脑上的一个50行文件,使用命令行中的g++编译时间大约为1.5秒——显然这取决于许多其他因素,比如包含了什么标头。对于用C++编写的Code::Blocks IDE来说,编译相同的文件(或者更准确地说,报告编译结果)可能是这个数字的两倍。用Java编写的IDE甚至更慢,我对此并不感到惊讶。

查看clang

Eclipse占用了大量的RAM,当您的操作系统也必须运行编译器时,它不太可能开始交换。

2018年出现了一个名为zapcc的基于clang的编译器。由于缓存的原因,它在第一次构建时至少快2倍,在重建时快20倍以上。

然而,它需要比gcc或clang多得多的内存。

一种变通方法可能是将C++项目划分为子组件,并以较高的优化级别编译整个项目。然后,在开发过程中,使用GCC/LLVM标志-O0(字母"o"和数字"零"),只重新编译更改的部分,而不进行任何优化。

这种解决方案的关键部分是一个良好的构建系统。截至2015年,我使用Rake,这是一个类似于GNUMake的Ruby。Rakefile是一个普通的Ruby文件,它只加载一个Rake特定的库。Rake任务本质上是全局Ruby函数,这意味着任何可以用Ruby编写的东西都可以从Rake任务中执行。截至2015年,我使用Rake任务启动自检、启动特定组件的测试(在"测试驱动开发"期间)、构建、代码生成等。

  • 截至2015年,Java界似乎喜欢Gradle,它是Apache Maven的继任者,也是Apache Ant的继任者
  • 开源科学C++软件项目似乎觉得CMake很实用。Boost C++库似乎提供了Boost。构建

在多核CPU上,如果经典的GNUMake接收到-j命令行选项,它可以并行构建多个文件。