2009-11-08 38 views
2

我目前正在从一些哈佛屏幕录像中学习C语言。他们很棒。我现在,是因为我已经习惯了,使用这种方法来运行我的代码:如何在OS X上改进我的C编码过程?

  1. 类型它,它的TextMate
  2. 保存
  3. GCC FILNAME
  4. 运行” ./ a.out的”
  5. 转到1

有一个主要的过程,程序,或最佳实践,我在这里失踪?我试过苹果-R在TextMate中,但编译东西裸机像...

#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秒,这显然是没有好处的。是否有一个很好的环境/编译器快捷方式,或者我可以做什么来使实际测试更简化?

谢谢!

回答

3

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

要创建一个简单的命令行C程序(像你上面描述的那个)做到这一点:

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

**请务必打开控制台以查看程序的输出。 (Run-> Console)

祝你好运!

+0

默认情况下,这不是Objective-C吗? – BobbyShaftoe 2009-11-08 05:58:30

+0

当您创建命令行工具模板时,您将开始使用一个名为C的main.c文件。从此处添加Objective-C类和标题是可选的。所以你只能从那里继续使用C语言。 – 2009-11-08 13:06:14

+0

我想我应该去尝试,但我的问题真的不是编译器是一个Objective-C编译器而不是ANSI C编译器? – BobbyShaftoe 2009-11-08 18:29:49

3

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

只是为您提供一种替代解决方案,您还可以在终端内使用vi/vim。您通过输入vi filename.c第一次打开该文件。然后你输入:w来保存文件,:!gcc filename.c来编译它,:!./a.out来运行它。感叹号可以调用shell命令,所以最后两个命令可以替换为一个:!gcc filename.c; ./a.out。在按下冒号后,您还可以从vi中获得命令历史记录(“向上箭头”,“向下箭头”)。

习惯是一个不同的故事...

4

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

1

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

4

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

在这里看到:现在

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

,你应该尝试安装GNU制作的Mac OS X

这样做,你会学到很多C程序员使用年龄的方法。我认为你会比直接使用Xcode获得更多的好处。使用Xcode你想确保你在做C而不是Objective-C。

现在,使用像vim这样的编辑器,您可以完成单个终端的所有工作,并且浪费更少的周期来切换工作流程。

那么您的工作流程变得:

$ VIM foo.c的
(保存)
$使
$/a.out的

如果你想这样做有什么严重的C语言编程。与UNIX环境有任何相关性(我怀疑哈佛大学的课程确实如此),您需要在某些时候学习make。

+0

+1,提及使用非Mac OS特定工具。 (并提及好的,免费的和开源的编辑器) – alternative 2009-11-08 21:33:00

2

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

0

应该在Makefile中使用Emacs或Vim。他们可以做任何事情。

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

的Emacs还提供了调试有用的各种其他功能(内置GDB的支持,以解析编译输出能力等)

使用IDE特定的构建工具的确切错误的方式做事情(特别是如果IDE恰好是平台特定的,如XCode和TextMate)

2

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

为了改进您的Textmate工作流程,为小型项目学习使用make并为Textmate安装Makefile包。你可以在GitHub找到它。

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