2009-11-17 64 views
4

我有一个unix c编程任务,其中我做了一些高级C网络编程。这是我进入高级编程的第一步。所以我想知道在Mac上这是什么工具的最佳组合。使用像Eclipse这样的IDE是我通常会这样做的,但我必须制作自己的makefile和东西。所以我想了解如何有效地使用可能是emacs或vim +其他工具。这将是一个相当大的项目,所以我很担心项目管理和调试问题,以及生产力因素。本质上我想学习程序员如何在专业环境中做到这一点,而不需要膨胀的IDE部分。我正在使用Snow Leopard.i也将在未来深入研究C++和python,所以对于这些人来说可能是有用的。mac osx开发环境

+0

对于大多数情况下,掌握Makefiles将是您最好的朋友,并在命令行上感到自在。 Google for makefile教程,下拉一个已经存在的Makefile副本。以此为基础进行编辑 - 编译 - 调试循环。一旦你对此感到满意,使用Gnu自动工具链(automake,autoconf)。 – t0mm13b 2009-11-18 00:17:39

+0

Makefiles,认真吗?他问及Mac OS X,而不是HPUX。 XCode人,XCode。 – rpj 2009-11-19 03:01:08

回答

4

我知道你在问怎么用makefiles/VI/etc来做。但在Mac上,Xcode真的是要走的路,特别是对于大型项目。这是一个非常有效的包装,它会为你调用gcc和gdb以及链接器。特别是在转向新平台时,不必担心许多烦人的细节,这将是生产力的一次飞跃。这是IDE调试器非常棒。

当然你也可以使用makefile等许多项目(仅以OpenSSL为例)带有makefile,你可以在命令行上在Mac上编译它们,就像在* ix操作系统下一样,即调用。/configure然后make。但是设置这样的东西(例如通用二进制文件的编译器选项等)却很乏味,而IDE只是一些选项。另外,如果你有谷歌的具体问题,你会发现更多的答案如何用Xcode做到这一点。

如果您想开始使用Xcode,它可以在您的Mac操作系统CD上(它不会自动预安装),也可以从Apple下载。当你运行它时,只需打开一个类型为“Application - Commandline Tool”的Mac OS X项目,你就可以在一分钟内建立一个main.c项目。然后你可以运行它或者在调试器中运行它,并且向它添加更多的源文件相当容易。 (我们将一个大型项目与DLL和取决于exes(整体250000行代码)移植到Mac,并且让所有设置都不是你所需要的称为小菜一碟),但如果你从头开始,你会很容易成长起来。

底线是Xcode当然有能力处理大型项目,我无法想象更有效率的方式(我过去曾使用过手写的makefile等,所以我知道这两个世界)。

+0

是的,我认为Xcode是在Mac中使用的工具,但我的担心是不是更好地学习一个工具,我可以在Linux中使用,以及在我可能不得不在Linux下测试它的情况。多数民众赞成我唯一的担忧,否则我wud肯定会去xcode。 – sfactor 2009-11-18 11:15:23

+0

@sfactor:你有兴趣学习OS X开发,而不是Linux开发,对吗?我很抱歉地说,但每个新平台都带来了新的挑战,而开发人员转向OS X所面临的(实质上)所需的挑战之一就是学习XCode。不要卖空自己:学习它,拥抱它,并且喜欢它。你会很高兴你做到了! – rpj 2009-11-19 03:02:21

+0

@sfactor:正如我所说的,Unix的做事方式也适用于Mac。当你安装Xcode时,你会得到安装gcc和朋友的需要从命令行编译/链接的东西。 另一个有趣的点可能。如果你用Xcode编译一个程序(例如一个示例程序),你可以看看Xcode如何调用编译器(在Build窗口中你可以看到所有运行的工具,并且有一个按钮来查看它们的细节),所以您可以从那里借用编译器和链接器的参数。 – Nicholaz 2009-11-19 11:30:44

4

Xcode是你的朋友。它是免费的,是一个非常好的IDE。当你启动XCode时,只需启动一个新的控制台应用程序(它将是ANSI C)。

享受。

1

如果学习unix编辑器的基本知识,shell编程,make等是作业的一部分,那么您只需要深入了解并学习需要学习的内容。一些好书会有所帮助。显然你需要K & R.我一直很喜欢O'Reilly出版的Unix书籍,通常是因为它们是最薄的。我讨厌厚厚的电脑书,因为他们从来没有读过。您还应该学习如何使用手册页。

Vim与Emacs是一个宗教选择。如果你问任何一个Unix家伙什么是最好的,他总是会告诉你他最先学到的一个,因为他有机会从未学过其他。就我而言,我一直使用Vim的时间太长,以至于我的退出键已经磨损,而且命令被硬连接到我的大脑中。显然,我认为它比emacs好(我从来没有学过!)如果你足够幸运有一台Mac作为工作站,请安装mac vim。这很棒。

制作很复杂,以至于你永远不会真正掌握它。只需学习足够的编译和链接你的程序。你可以随时了解更多,如果你需要它。

版本控制是一个有趣的问题...我使用RCS的小东西。像vi一样,它在每台Unix机器上。对于真正的大型项目,我使用颠覆,但像编辑一样,大多数人使用他们首先学到的东西。 Git的人会说它是唯一使用的,等等。

命令行调试器很痛苦,这是Xcode的一个主要卖点。我用gdb,但我不记得它是一个愉快的经历。自从我使用它已经很长时间了,我甚至不记得如何启动它。现在必须有更好的调试器。试试谷歌。底线,你提到的所有事情都是很大的话题。你需要对每一种都进行切合实际的叮咬,而不是缠在杂草里。掌握它们可能需要几年的时间。

最后,我会尽量远离C++!目标C要好得多。个人偏见!