如何解决是否有用于Linux的更快的c ++编译器?
| 在C语言中,我可以使用tcc,但找不到c ++的任何东西。 在Eclipse中使用Gcc更改的单个.cpp文件需要大约5秒钟才能重新编译,这很荒谬。我不在乎代码的性能,我只需要一个更快的测试周期。 有什么想法可以使代码编译更快吗?解决方法
签出c
, 对于我不太快的笔记本电脑上的50行文件,使用g ++从命令行编译时间约为1.5秒-显然,这取决于很多其他因素,例如包含哪些标头。对于用C ++编写的Code :: Blocks IDE,相同文件的编译(或更准确地说,报告编译结果)可能是原来的两倍。用Java编写的IDE甚至更慢,我并不感到惊讶。
, Eclipse占用了太多内存,当您的操作系统也必须运行编译器时,它不太可能开始交换。
, 在2018年,有一个基于clang的编译器叫做zapcc。由于缓存,它在首次构建时至少快2倍,而在重新构建时快20倍以上。
但是,它比gcc或clang需要更多的内存。
, 可能的解决方法是将C ++项目划分为子组件,并以较高的优化水平编译整个项目。然后,在开发过程中,使用GCC / LLVM标志
-O0
(字母\“ o \”和数字\“ zero \”),仅重新编译完全没有优化的部分。
这种解决方案的关键部分是一个精巧的构建系统。从2015年开始,我使用Rake,它是GNU Make的Ruby类似物。 Rakefile是一个普通的Ruby文件,仅加载Rake特定的库。 Rake任务本质上是全局Ruby函数,这意味着可以用Rake任务执行可以用Ruby编写的任何内容。自2015年起,我使用Rake任务进行自检,对特定组件进行测试(在“测试驱动的开发”过程中),构建,代码生成等。
截至2015年,企业Java世界似乎很喜欢Gradle,它是Apache Maven的继任者,Apache Maven是Apache Ant的继任者。
开源科学C ++软件项目似乎使CMake实用。 Boost C ++库似乎提供了Boost.Build。
在多核CPU上,经典GNU Make如果收到the1ѭ命令行选项,则可以并行构建多个文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。