寻找有关为C开发建立方便而高效的开发环境的想法。我发现使用Vim进行C编辑非常有帮助,但是我想获得更多建议。
寻找有关为C开发建立方便而高效的开发环境的想法。我发现使用Vim进行C编辑非常有帮助,但是我想获得更多建议。
Answers:
Emacs / Vim / Eclipse / ...-我个人是Emacs用户。如果您发现控制序列使您的小指感到疲倦,则只需在Viper-Mode上进行设置即可。Emacs很好地集成到了unix中,可以非常容易地从一个地方控制所有内容。Vim在这里也做得很好,但是我发现Elisp是比Vim Script更强大的扩展语言。一个小时可以谈论建立Emacs进行C开发的所有方法。 提到了Flymake模式,这是事物的超级开始。我不熟悉Eclipse,我找不到它在屏幕上留出足够的空间来存储代码,也不喜欢它有多肿(Vim用户会对Emacs持同样的看法)。出于纯粹的美学原因,我也不公平地反对使用Java编写的任何内容。
Ctags-标记您的C(或许多其他语言)函数,以便Vim或Emacs或其他可以在文件中进行一些超文本链接。假设您在四处游荡,看到一个功能,然后挠头说:“那个又做什么了?命名有点含糊。” Plink-plank-plunk,您可以直接更改其定义。
Cmake / Gnu-Autotools -Make很不错,但是在某些时候,您需要稍微抽象一些东西,以便您的项目可以在您无法测试的各种系统上进行构建。如果您只需要人们在* nix上构建代码,Autotools就是很好的选择,但是,实际上,您还是应该熟悉Cmake。Cmake团队会在所有可能的配置中构建代码,并确保您不必费力。如果您希望您的项目容易被他人收购,那么这些工具之一至关重要。
Git / Mercurial / Subversion / ...-您可能需要花费数月的时间来研究版本控制软件,但您可能应该只使用Git。它是可靠的,它是分布式的,使用它跟踪@ $!#%&Linux内核。如果对Linus足够好,那么对您也必须足够好。我也听到了有关Mercurial的好消息,显然G ** gle使用了它们,因此可能还不错。有些人似乎喜欢Subversion和CVS等。我不喜欢它们,因为它们是整体的,这对我来说非常不便且有局限性。
Stumpwm / wmii / XMonad / ...-在某些时候,您将意识到可以做的一切事情都可以极大地提高您的输出。防止大脑破裂的最好方法之一是切换到平铺的,键盘驱动的窗口管理器。我是窗口管理器Emacs StumpWM的个人粉丝。通过即时可定制的Common Lisp流程完全实现,您发现自己重复做的任何事情都可以放逐到函数中并绑定到命令。好东西。我对其他任何一个都不太了解,但是最好进一步细化到另一个线程。尽可能使用键盘。
GDB-我对其他调试器不熟悉,但这似乎是事实上的标准。
Valgrind-我不知道有什么能做得很好。对于您想要进行的所有烦人的性能分析/内存泄漏搜寻,Valgrind至关重要。如果没有Valgrind,就无法使用malloc / calloc编写代码。
您可以使用与G ++ / GCC一起使用的Netbeans C / C ++软件包:
我在控制台中用Vim编辑C。我使用了makefile,并使用许多编译器来针对我的代码进行测试,包括gcc,clang(LLVM)和icc。我认为开发环境中有其他内容:grep,调试器和valgrind的使用。一种用于更复杂构建的脚本语言。使用Git进行版本控制。
在我看来,比起用来编辑代码的方式,更重要的是代码的结构方式。如何进行布局可能是Stack Overflow的一个问题,但是,正如您所问的那样,我经常有一个单独的目录来存放目标代码,而不是分发目录,并为生成的二进制文件(y | ies)提供另一个文件夹。我有一个测试文件夹,其中包含更多使用我正在编写的通用代码和valgrind的通用代码的C文件,以及最终的项目文件。