我正在为我当前的盒子寻找替代品,Mac OS X看起来非常吸引人。
我感兴趣的主要领域是C ++编程。目前我正在使用Eclipse + CDT和g ++来创建我的软件;有时它是KDevelop。
我知道Mac的主要IDE是Xcode,主要语言是Objective-C。如果可能的话,我想避免学习Objective-C。我也听说过/从C ++访问Mac OS X API时存在一些问题。
因此我的问题: 开发/调试/测试C ++应用程序的完整解决方案是什么,可以访问Mac OS X的所有硬件方面(UI,声音,视频/加速视频等)?
编辑:Xcode与Eclipse + CDT组合相比如何?如果这种比较完全可能......
答案 0 :(得分:15)
如果您想使用C ++而不是Objective-C,并且仍想避免使用中间层库(例如QT),则可以使用Carbon。
我会使用XCode而不是Eclipse,因为Eclipse在处理硬核C / C ++编程(编译,调试,测试)时速度较慢。
当我第一次开始在Mac OS X中编程时,我就在你现在的同一页面。我认为坚持使用我所熟悉的语言(C ++)并使用较旧的库(Carbon)会更好。由于某种原因,我现在不记得了,我强迫自己进入Cocoa(Objective-C)。回顾过去,我认为这是一件好事,因为:
答案 1 :(得分:10)
你应该不避免学习Objective-C和Cocoa。事实上它应该是你做的第一件事。除非你在Smalltalk中有扎实的背景,否则你不太可能接触到设计良好的大型(一套)框架。
答案 2 :(得分:7)
Objective-C并不难。如果您了解C ++,那么您需要花费一到三天的时间来学习这些约定。
Cocoa API和约定需要更长时间,但这些会及时到来。
祝你好运!答案 3 :(得分:5)
除非你正在考虑使用像QT这样的中间层,否则我认为你几乎坚持使用Objective C与GUI的部分接口,就像它是他们的母语一样。
也就是说,有人提到您可以轻松地混合Objective-C代码和C ++代码,这样您仍然可以用C ++编写大部分应用程序。
我主要是一名C ++程序员,但我总是涉足其他语言而且我玩过XCode(是的,我有一台Mac)。我喜欢它,它有点不同但是作为一种将OS X GUI固定在一起的方式,如果你不喜欢XCode,那么其余的就在你和你最喜欢的编辑器之间。
答案 4 :(得分:5)
我一直在使用Objective-C ++来编写UI,这使得使用C ++编写应用程序后端变得更加容易。它似乎对我很好。 Objective-C& Objective-C ++很容易上手,这让我可以继续使用我来之不易的C ++知识。
答案 5 :(得分:2)
使用OS X中的gcc或g ++没问题。无论如何,XCode安装都会为您提供这些编译器,如果您真的想要,可以加载一个x服务器实例并让KDE正常工作。我自己喜欢XCode编辑器。 Eclipse也适用于OS X,因此您应该能够使用当前环境。
我之前使用过OS X框来交叉编译从PPC arch到ARM arch的C代码,没有任何问题。它只是另一个* nix风格的系统,因此您熟悉的所有工具都已经存在,如果不存在,只需使用fink或macports自行获取。
此外,如果您真的想使用C ++开发GUI OS X应用程序,您可以始终使用Carbon而不是Cocoa。这是一个完全可行的选择,只是略微弃用。
答案 6 :(得分:2)
Mac OS X上的Carbon实际上已被弃用 - 它不会也不会支持64位应用程序。
如果您真的想使用c ++,请使用Qt Creator
现在免费且trolltech SDK包含Qt 4.5,虽然它是一个c ++框架,但它内部使用Objective-C与MAC OS X进行交互,因此您不受Carbon的限制。
缺点是trolltech库不是mac上的标准库,你必须为它们提供你的应用程序。
答案 7 :(得分:2)
C ++与Xcode的效果非常好。如果你想要cocoa,你可以学习gui层的最小(并且我的意思是极少)Obj-C的数量,并且你的代码大部分都是用C ++编写的。
另一个选择是使用其中一个脚本语言框架来连接Cocoa API(例如PyObjc)和C ++中的大部分逻辑。
第三个也是最后一个选项是使用跨平台gui工具包,如Qt4。如果您希望使您的图书馆跨平台,那么这将是您的目标。
我建议不要与Carbon合作。这绝对是一个垂死的野兽。你也可以使用上面的组合提供一个库和你的C ++代码,然后创建gui特定的UI来链接它们。
答案 8 :(得分:1)
我同意Pablo Santa Cruz并且想补充一点,在同一个应用程序(和相同的源文件)中混合使用Objective-C和C ++是微不足道的。这被称为Objective-C ++,并讨论了in this article。
XCode使用GCC进行编译,因此您可以随时准备好Objective C,C和C ++。
答案 9 :(得分:0)
我自己没有在OSX上使用它(我可以在Windows上推荐它),但Code :: Blocks C ++ IDE是使用并支持跨平台的wxWidgets GUI库实现的。 OSX支持它 - 请参阅this page。
答案 10 :(得分:0)
我建议你坚持使用最适合自己的IDE。就个人而言,我第一次使用Xcode并且拒绝放弃Eclipse时,我讨厌Xcode。几天后,我热身到Xcode,不介意不时使用它。但是,我仍尽可能使用Eclipse。
请记住,你不能只使用C ++编写Cocoa应用程序,你需要深入研究Obj-C。碳应用程序看起来或行为不像Cocoa应用程序。大多数人都不会介意,但这是值得思考的问题。我从java / C#跳进Obj-C没有任何问题。这种语言需要一点点习惯,但这并不是很困难。
答案 11 :(得分:0)
如果您真的想在Mac OS X上使用C ++,请使用SDL / wxWidgets / Qt之类的内容。
可以选择将Objective-C与C ++结合起来,称为Objective-C++。您可以将它用于所有模型,只需使用Objective-C即可,如果没有Foundation-framework,这是不可能的。
作为最后一个选项,我会想到Carbon。这是一个在OSX之前使用但在Mac OS X上运行的本机框架。问题是,它不支持更新的技术,我认为OS X的下一个版本Snow Leopard不会支持它根本就没有。
Apple说:Carbon使C / C ++开发人员能够 利用Mac OS X的功能, 包括Quartz 2D图形 库,高效的事件处理 机制和多处理 支持。另外,其他 行业标准的C / C ++ API 可供Carbon开发人员使用, 提供对诸如此类服务的访问 OpenGL绘图系统,Mach 微内核和BSD操作系统 服务。
不要指望Carbon应用程序看起来100%原生,而且编程要比Cocoa复杂得多。
但是,我推荐learning Objective-C,它并不难,并且有许多强大的框架,如CoreData,CoreGraphics等。
答案 12 :(得分:0)
对于一些小型爱好项目和我正在制作的iPhone应用程序,我使用的是客观C ++和“真正的”C ++。 XCode很好地支持两种语言的混合。我使用客观C / Objective C ++作为用户界面,并作为OSX框架和我自己的代码之间的薄层。到目前为止,这已成为一种很好的工作方式。
答案 13 :(得分:0)
我现在用于Mac开发的开发环境是QTCreator,它是一个免费的IDE,可以在QT中使用gcc作为编译器进行开发。它提供了我需要的所有功能,它是跨平台的(我正在开发的应用程序的一个要求)。
我不得不说我印象非常深刻。我对这样一个专注(专为QT设计)和最近的IDE没有寄予厚望。环境简单但功能强大(包括GUI编辑),并且具有我见过的更好的代码完成。在这种环境下轻松编程,不要错过一点Visual Studio。
真的值得一试。