在Linux中开发C应用程序时的重要且方便的工具和命令

时间:2012-08-14 13:38:07

标签: c linux

到目前为止,我有使用Visual Studio的经验。但我打算使用一些Linux工具来开发和维护用C语言编写的应用程序。

我彻底解决了这个问题question,但它对IDE的讨论过多。我很乐意使用它们,但我想知道哪些其他工具对于上述练习来说很方便和重要。我还想知道,有任何命令可以让事情变得简单。谢谢!

编辑:我使用过vim并熟悉gcc及其重要标志。任何进一步的帮助。

4 个答案:

答案 0 :(得分:11)

您需要熟悉linux命令行工具。特别是:

  • 了解一个好的编辑器,例如vimemacs
  • 使用make
  • 编写构建脚本
  • 使用gcc
  • 进行编译
  • 使用gdb
  • 进行调试
  • 源代码控制:如果您有选择的优势,我推荐使用现代DVCS,例如git或mercurial。否则你的团队已经使用的任何工具都应该没问题。

这只是涉及要点的表面,但它可能会帮助你开始。


这些工具也很有用:

  • grep - 您需要一种搜索​​源文件的好方法。此命令与vim和emacs(?)集成,因此在大多数情况下,您可能希望直接在编辑器中使用它。
  • ctags - 正如其他人所说,这将使很多更容易从编辑器中浏览源代码。再次,请咨询您的编辑,了解如何使用ctags。
  • valgrind - 查找应用程序中的内存泄漏。
  • lint - 一个静态分析工具,例如splint,用于查找C代码中的编码错误。
  • rpm或其他打包系统 - 根据您部署应用程序的方式,您可能希望使用包管理器来帮助进行版本控制,安装/升级脚本等。
  • screen - 终端多路复用器允许您拆分终端,以便(例如)在一个窗格中查看源代码并在另一个窗格中调试/执行/搜索日志。如果您必须连接到您支持的任何远程计算机,这也很方便,因为如果您碰巧断开连接,您可以稍后重新连接到远程屏幕会话,而不必担心所有命令都被终止。例如,如果您处于yum update的中间位置,则不必担心它会因为您的连接被切断而在交易中被终止。
  • ssh / sftp / etc - 如有必要,将文件安全地复制到测试/生产计算机。

答案 1 :(得分:6)

在Linux下使用C进行开发时,此工具非常有用:

  1. IDE:Vim主题solarizedhttp://ethanschoonover.com/)。 CtgasTaglist可轻松浏览您的代码(http://www.thegeekstuff.com/2009/04/ctags-taglist-vi-vim-editor-as-sourece-code-browser/
  2. 用于编辑和调整gccgdbmake
  3. 对于大型项目:AUTOCONFAUTOMAKELIBTOOL
  4. 检查所有与内存相关的内容:Valgrind 检查功能CPU时间消耗Callgrindhttp://valgrind.org/info/tools.html) 全球Valgrind's Tool Suite(http://valgrind.org/info/tools.html)是一个很棒的工具
  5. 对于高质量代码:GNU gcov(测试覆盖率),这是一篇关于代码测试和高质量C代码的精彩文章(http://aleccolocco.blogspot.fr/2009/08/sqlite-lesson-in-low-defect-software.html
  6. GNU locate:轻松查找所有文件
  7. Git用于源代码配置
  8. Doxygen:生成代码文档
  9. 如果您开发网络计划:wireshraktcpdump
  10. 使用LXR(http://lxr.linux.no)(http://www.ittc.ku.edu/~niehaus/classes/800-s04/notes/setup_lxr.txt
  11. Esaily浏览内核代码
  12. Strace跟踪系统调用(它总是调试打开配置文件的程序的好工具)
  13. MAN PAGES是最好的工具

    还有很多好东西: -

答案 2 :(得分:2)

在使用processus或htop时,使用终结器进行多项并轻松切换。

我推荐emacs(-nw)或vi

Gcc编译你的C代码。

您还希望使用GDB进行调试。

Valgrind检查泄漏和内存转储

答案 3 :(得分:1)

您需要能够在代码库中找到内容,为此我建议:

  1. ack。它就像一个find / grep组合,但更容易使用,更有用,直接面向程序员。
  2. ctags。它将帮助您通过编辑器(vi / emacs等)以类似于IDE的方式浏览代码库(将代码视为一组超链接)