Mac OSX 开发环境

4
我有一个Unix C编程作业,需要进行一些高级C网络编程。这是我进入高级编程的第一步,所以我想知道在Mac上使用哪种工具组合最好。通常我会使用Eclipse这样的IDE,但我必须制作自己的makefiles等文件。因此,我想学习如何使用像Emacs或Vim +其他工具有效地完成它。这将是一个相当大的项目,所以我主要担心项目管理和调试问题,以及生产力因素。本质上,我想学习程序员在专业环境中如何做到没有臃肿的IDE部分。我正在使用Snow Leopard。我还将深入研究C ++和Python,因此可能需要一些对这些语言也有用的东西。

在很大程度上,熟悉Makefiles和熟练使用命令行是非常重要的。可以在Google上搜索makefile教程,获取已有的一个Makefile副本。以此为基础进行编辑-编译-调试循环。一旦你熟悉这个过程,就可以使用Gnu自动化工具链(automake、autoconf)。 - t0mm13b
Makefiles,认真吗?他问的是Mac OS X,不是HPUX。XCode人员,XCode。 - rpj
3个回答

5
我知道你想了解如何使用makefiles/VI等方法,但在Mac上,Xcode是最好的选择,特别是对于大型项目。它是一个非常有效的包装器,可以为您调用gcc和gdb以及链接器。特别是当移动到新平台时,不必担心许多烦人的细节将显著提高生产力。它的IDE调试器非常出色。
当然,您也可以使用makefiles等。许多项目(仅以OpenSSL为例)都带有makefiles,您可以像在*ix操作系统下一样在Mac上从命令行编译它们,即调用./configure,然后进行编译。但是设置此类内容(例如通用二进制文件的编译器选项等)很繁琐,而IDE只需要几个选项。此外,如果您搜索特定问题,您会发现更多关于如何使用Xcode的答案。
如果您想开始使用Xcode,则可以在Mac操作系统CD上找到它(它只是不自动预安装),或者您可以从Apple下载它。运行它时,只需打开类型为“应用程序-命令行工具”的Mac OS X项目,您将在一分钟内设置一个带有main.c的项目。然后,您只需运行它或在调试器中运行它,添加更多源文件也相当容易。
对于设置已经存在的大型项目,Xcode可能会非常麻烦(我们将一个带有DLL和依赖exe的大型项目(总共250000行代码)移植到Mac上,只是把所有内容设置好并不容易),但如果您从头开始,您很容易就能适应它。
总之,Xcode肯定可以处理大型项目,我无法想象更有效的方法(过去我曾使用手写的makefiles等,所以我知道这两个世界)。

是的,我认为在Mac上使用Xcode是最好的工具,但我的担忧是,学习一种我也可以在Linux系统下使用的工具是否更好,以防万一需要在Linux下测试。这是我唯一的顾虑,否则我肯定会选择Xcode。 - sfactor
@sfactor:你对学习 OS X 开发感兴趣,而不是 Linux 开发,对吗?很抱歉要说,但每个新平台都带来新的挑战,而对于转向 OS X 的开发人员来说,其中一个(基本上)必须面对的挑战就是学习 XCode。不要低估自己:只需要学习、拥抱和热爱它。你会为此感到非常高兴! - rpj
@sfactor:就像我说的那样,Unix 的做法在 Mac 上也适用。当你安装 Xcode 时,会自动安装 gcc 和其他必要的命令行编译/链接工具。另一个有趣的点是,如果你在 Xcode 中编译程序(例如一个示例程序),你可以查看 Xcode 如何调用编译器(在“构建”面板中,你可以观察所有正在运行的工具,并有一个按钮可以查看它们的详细信息),因此你可以从中借鉴编译器和链接器的参数。 - Nicholaz

4

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

享受吧。


1
如果学习Unix编辑器、Shell编程、Make等基础知识是任务的一部分,那么你只需要深入学习所需的内容。一些好的书籍会有所帮助。显然,你需要《C程序设计语言》。我总是喜欢O'Reilly出版社的Unix相关书籍,通常因为它们最薄。我讨厌厚重的计算机书籍,因为它们永远不会被读完。你还应该学习如何使用man手册。
Vim和Emacs是一种信仰选择。如果你问任何Unix人哪个最好,他肯定会告诉你他学的第一个,因为他很可能从未学过另一个。在我的情况下,我使用Vim已经很长时间了,我的Esc键都磨损了,命令已经硬编码到我的大脑中。显然,我认为它比emacs好得多(我从未学过!)如果你有幸拥有一台Mac作为工作站,请安装mac vim。它非常棒。
Make足够复杂,以至于你永远无法真正掌握它。只要学会足够编译和链接你的程序即可。如果需要,你总是可以学到更多。

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

命令行调试器很麻烦,这是Xcode的主要卖点。我用过gdb,但我不记得它是一种愉快的体验。自从我用它以来已经很长时间了,我甚至不记得如何启动它。现在肯定有更好的调试器了。试试谷歌。

总之,你提到的所有事情都是大话题。你需要逐个实际掌握,不要被细节缠住。掌握它们可能需要几年时间。

最后,我会尽可能远离C++!Objective C更好。个人偏见!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接