在Linux上进行x86 C++开发有哪些(工作)备用工具链?

Off*_*rmo 9 c++ linux gcc clang

我确切地说,我将这个问题限制为我的x86(64位)linux盒子的"本机"开发.没有嵌入式或非x86架构.

由于我是C++用户并且有C++复兴,我目前正在使用C++进行个人项目.

现在我正在使用强大的,传统的linux/gcc/make工具链.

但通过博客文章和SO问题,我最近意识到了新的有前途的工具:

  • ''clang''作为''gcc''的替代品,速度更快,提供更好的错误信息
  • ''gold''代替''ld'',速度要快得多

这些工具鲜为人知,很容易甚至不知道它们.

还有其他有趣的鲜为人知的工具我应该注意吗?例如替代gdb等?(我也在使用cmake)

我首先寻找易于开发,然后提高开发速度.欢迎任何其他改进.

如果可能,免费工具.

Bas*_*tch 5

您可能对ccache感兴趣 (一个编译器缓存能够避免无用的重新编译,并通过相同的g++命令透明地使用,只需在您的内部添加一个符号链接$PATH)

对于C(但不是C++)编程,您可能会感兴趣tinycc- 编译速度非常快(但生成缓慢运行的二进制代码).

编码时,可以使用Boehm的垃圾收集器.请参阅与在C++中使用它相关的问题.

并且还用于valgrind调试内存泄漏.

有时,使用dlopen动态加载共享对象是有趣的.所述dlsym-ed符号应extern "C"在C++中.我有时喜欢动态生成C或C++代码,编译它和dlopen模块.

对于建筑,考虑调查其他建筑商,例如omake.

编译时,不要忘记编译器的-Wall(也许-Wextra)标志.新的链接时间优化(CXX=g++ -flto在您的中Makefile)可能很有趣(但编译时间会受到影响,因为可执行文件的速度可能会提高10%).

如果您的源代码文件共享所有相同的C++标头,那么预编译该标头是值得的.

存在较新的(例如优于C++)语言,如Ocaml和Haskell,还有Go和D.

使用像GIT这样的版本控制系统,即使是宠物项目.

Qt是一个很好的C++框架,特别是它的图形工具包.

Wt使您能够非常快速地在C++中编写Web界面.

GCC和GDB都在不断发展.不要忘记使用最新版本(例如,GCC为4.6,GDB为7.3),这些版本比以前版本提供了重大改进.

考虑通过插件扩展或自定义GCC编译器以满足您的特定需求,或者更好地使用MELT扩展.