如何在OS X上改进C编码过程?

时间:2009-11-08 02:08:05

标签: c

我目前正在从哈佛的一些截屏中学习C语言。他们很棒。我现在,因为我已经习惯了,使用这个过程来运行我的代码:

  1. 键入TextMate
  2. 保存
  3. gcc filname
  4. 运行“./a.out”
  5. 转到1
  6. 我在这里缺少一个重要的流程,程序或最佳实践吗?我在TextMate中尝试过apple-R,但是要编译像...这样的简单的东西

    #include <stdio.h>
    
    int
    main(int argc, char * argv[])
    {
        int x = 342;
        int y = 92;
        int z = x + y;
        printf("these values added are: %d\n", z);
        return 0;
    }
    

    ......需要4秒,这显然不太好。是否有一个很好的环境/编译器快捷方式,或者我可以采取的其他任何措施来使实际测试更加简化?

    谢谢!

8 个答案:

答案 0 :(得分:4)

我在终端中使用文本配合和gcc。我发现Xcode对于C中的小型命令行程序来说太笨重了。如果你想做cocoa GUI应用程序,需要一个快速的Apple API参考或想要一个图形前端到gdb等等,这很棒。对于你上面的程序,4秒听起来过多,但是这可能是由于Textmate cmd-R快捷方式。除了脚本,我从来没有用过其他任何东西。但我同意您应该安装Xcode,它位于您的Mac OS安装盘上。

答案 1 :(得分:4)

我不同意如果你想编码ANSI C那么这就是我的建议。熟悉一个更强大的文本编辑器,无论是vim,emacs还是其他什么。我更喜欢vim。

见这里:

http://macvim.org/OSX/index.php

现在,您应该尝试为Mac OS X设置GNU Make。

这样做,您将学习大多数C程序员多年来使用的方法。我认为你会比直接使用Xcode获得更多。使用Xcode,您需要确保使用C而不是Objective-C。

现在,通过像vim这样的编辑器,您可以从单个终端执行所有操作,并减少在工作流程中切换的周期。

因此,您的工作流程变为:

$ vim foo.c
(保存)
$使
$。/ a.out

如果你想做任何与UNIX环境有任何关系的严肃的C编程(我怀疑哈佛课程的确如此),你需要在某些时候学习make。

答案 2 :(得分:3)

安装Apple的开发工具,并使用XCode IDE。它可能会也可能不会增加你的编译时间,但它会大大减少手动编码和编译命令行的痛苦。

要创建一个简单的命令行C程序(如上所述),请执行以下操作:

文件 - &gt;新项目 选择Command Line Tool作为项目类型。 该模板包含一个带有main.c文件的“hello world”程序。 编辑main.c文件以包含您正在处理的代码。 选择Build and Run按钮运行项目。

**务必打开控制台以查看程序的输出。 (运行 - &GT;控制台)

祝你好运!

答案 3 :(得分:3)

如前所述,XCode是Mac的做法。

为了给您提供替代解决方案,您还可以在终端内使用vi/vim。您可以通过键入vi filename.c首次打开该文件。然后键入:w保存文件,:!gcc filename.c编译文件,:!./a.out运行文件。感叹号执行调用shell命令的技巧,因此最后两个命令可以替换为一个:!gcc filename.c; ./a.out。按下冒号后,您还可以在 vi 中找到命令历史记录(“向上箭头”,“向下箭头”)。

习惯 vi 是另一回事......

答案 4 :(得分:2)

尝试使用 gcc -Wall -Werror 进行构建,并尝试了解并修复警告。这总是很好的做法。

答案 5 :(得分:2)

除非您需要使用调试器,否则我不建议切换到XCode。 GDB与XCode的集成非常好,并且与Textmate不存在。

要改善小型项目的Textmate工作流程,请学习使用make并安装Textmate的Makefile包。您可以在GitHub上找到它。

这将为Textmate提供一个新的Build(“Command-B”)选项,它将运行make,解析输出,并让您轻松纠正编译时错误。

答案 6 :(得分:1)

我认为你应该继续做你正在做的事情。 4秒不 等待很长时间,特别是一旦你的程序变得更加广泛。只需使用基本的文本编辑器和gcc就可以让你掌握C的基础知识。一旦你准备好开始制作GUI应用程序,那么我建议开始使用XCode来利用这些工具制作这类应用程序。我认为IDE在这一点上是过度的。

答案 7 :(得分:0)

应该将Emacs或Vim与Makefile一起使用。他们可以做任何事情。

例如,在Emacs中,编译就像M-x Compile一样简单(但当然你可以将任何键绑定到它)。 Emacs也是跨平台的(与XCode和TextMate不同)。

Emacs还提供了许多其他用于调试的功能(内置gdb支持,解析编译输出的能力等)

使用特定于IDE的构建工具是完全错误的做事方式(特别是如果该IDE恰好是特定于平台的,例如XCode和TextMate)