在Mac上进行C++开发

14

到目前为止,我主要集中在Web编程方面,并且现在想进入应用程序编程领域。我使用的是Mac,并且想知道人们通常用于C++开发的编译器、IDE等。

极度新手 还有一件让我非常困扰的事情是,C++编译器通常会输出无法在Mac上使用的.exe文件。我需要了解基本的面向对象编程基础,并认为C++可能是最好的选择。请给出建议。


对于Mac终端的C++11,请参见此处:https://dev59.com/mmYq5IYBdhLWcg3wvzKm 调试器是lldb。 - JayS
9个回答

10
在某个操作系统上编译C++将会创建一个针对该操作系统的可执行文件。您不仅限于 .exe 二进制文件。
开始创建您的第一个C++应用程序的第一步是安装Xcode。这个开发程序在Mac OS X中默认没有安装。您必须插入计算机附带的其中一个DVD并进行安装。之后,启动Xcode,单击 文件,然后单击 新建项目。完成后,选择命令行工具,并确保所选类型为C ++ stdc ++。在我忘记写这个之前,Xcode的C ++编译器是gcc。如果您需要一些帮助来开始,您可以访问一些网站或购买(或租赁)一些书籍
请注意,苹果的主要编程语言是Objective-C,它与C/C++不同。虽然这两种语言有共同之处,但从Objective-C开始可能会更容易。可以使用Objective-C进行一些面向对象编程OOP with Objective-C,并且这样做会更容易。另一方面,使用C++比Objective-C可以进行更复杂的面向对象编程
如果您想学习Cocoa框架的基础知识(这是一组库和工具,可帮助您创建窗口),我建议您学习如何编程(一些Objective-C或C++可能很好),并购买Aaron Hillegass的书Cocoa Programming for Mac OS X

3

如果你的问题是:我能否使用C++来开发Mac应用程序,那么答案是肯定的,但是如果你想要真正本地化的Mac应用程序,你可能需要投资学习Objective-C和Cocoa框架。


在Mac OS X上也有许多基于C++的框架,例如I/O Kit。 - dreamlax
1
I/O Kit使用“嵌入式C ++”,它并不是一个用于应用程序开发的框架。 - Stefan Arentz
使用Objective-C++,你可以既拥有蛋糕,也可以吃掉它。(并用它射击自己的脚..) - Michael Anderson

2

C++编译器会输出本地平台的目标代码。因此,在Mac上,它将输出可在Mac上运行的可执行程序,而不是Windows可执行文件。

XCode是一个备受推崇的Mac IDE,您可以用它来进行C++开发。

Java可能是面向对象编程(OOP)的更容易选择,因为它避免了许多可能会使新手犯错的陷阱。另一种OOP选择是Objective-C,这是Mac开发的好选择。


在Mac OS环境下,使用Objective-C比Java更容易,如果OP想以后学习C++的话。 - Partial

1

您还可以使用QT Creator,这是一个非常好的集成开发环境 :)


Qt是一个非常昂贵的系统,对于单独的开发者来说,它的想法非常荒谬。除非你有钱可以随意挥霍,否则它只适用于免费项目。订阅模式从一开始就是有毒的。如果订阅结束,你甚至不能重新构建你的应用程序来修复错误。Qt的人们已经失去了理智。我所犯的最大错误就是使用Qt进行开发。 - fyngyrz
@fyngyrz 您似乎对QT许可系统有一些误解。如果您进行动态链接,QT即使在商业上使用也是免费的。 - IceFire
@icefire 在SO上的线程并不是QT版权所有者的明确法律承诺/立场。正如我所说,我已经阅读了QT的实际许可材料,从那些材料中并不清楚我是否可以创建一个商业应用程序而不欠他们钱。如果有实际的QT许可材料明确说明您在此处所声称的内容,我很想看到它们。谷歌目前还没有找到这样的东西,当然这可能只是我的搜索不足。 - fyngyrz
@fyngyrz 这些都是来自那些似乎完全理解法律条款的人的推论。但是许可证条款并没有使用“动态链接库”之类的术语,因此您可以选择相信链接背后的解释或自己咨询律师。我没有找到任何公开的律师声明与QT许可证相关。 - IceFire
1
@icefyre 这是问题所在:作为一个非律师和现在非常小的开发者,我不能基于随机人的解释来建立商业案例,也无法承担雇佣律师的费用。QT的实际许可材料似乎非常清楚,如果您获得了收益,他们想要很多钱,并且他们不会让您更新此类代码而不进行持续付款,但对于免费软件,他们已经做出了例外。对我来说,他们不太可能想要很多钱,但愿意根据您链接代码的方式获得$0。但我没有找到任何非QT人明确说明这一点的地方。 - fyngyrz
显示剩余2条评论

0

在 Mac 上,只需使用 Xcode / gcc 创建和编译 C++ 应用程序。Native Mac 应用程序通常使用 Objective-C 编码,但由于 Mac 是 BSD 的一个变种,所以使用 gcc 工具创建 C++ 可执行文件也很普遍。

编辑:澄清一下: - Xcode 是免费的 Mac IDE,随安装磁盘一起提供。 - GCC 是开源编译器,是 Xcode 的一部分。


0
如果你使用的是Mac,那么Xcode是首选,当然还有其他选择,比如Net Beans和Eclipse。

0

0

如果你打算为 MAC 构建应用程序,最好的方法是学习 "Objective C" 并在 MAC 上使用 Xcode 编辑器。这将对您的长期发展有所帮助。 Xcode 还允许您使用 C/C++ 和 Java 来构建应用程序,以及 Objective C。

一个很好的起点可以是访问此网址 http://developer.apple.com/mac/,它还提供了帮助信息。


-2

C++ 不仅限于 .exe 文件……Windows PE 文件是机器码的一种容器格式。C++ 二进制文件可以被封装在任何你能想到的低级容器格式中。

在 Mac 上,Objective-C 可以是一个非常愉快的学习语言,Java 也是如此。你真的需要在这个时候学习 C++ 吗?C++ 适用于低级编程问题——即视频游戏、系统软件和通常是性能关键的软件(如 Photoshop 和 iMovie)。


25
先学习C++可以使学习其他编程语言变得更容易。C++是一种多范式语言,因此可以在一种编程语言中看到多种编程方式。 - Partial
7
虽然这是一种美好的情感,但在实践中却是适得其反——大多数人学习语言的动机是为了获得解决问题的专业知识,而不是关注启蒙,或者通过时间和经验来达到启蒙。例如:一个想要开车去上班的人为什么要知道如何开拉力赛车?当然,这可能会在他们试图在冰路上行驶时改善他们的状态......但在实际操作中,他们只需两天慢慢地驾驶即可。@partial - Hassan Syed
5
在道路上会遇到许多问题,如结冰路、湿滑路、颠簸不平的路面、动物穿越、其他司机等等。但是如果我们有一些具备拉力赛车手经验、知识和反应能力的人在路上行驶,就会减少事故发生。同样的道理也适用于编程。如果你花时间学习C++,你会获得一种特定的思维模式,最终会使编程更加出色。此外,你还会获得一些在使用简单编程语言时所没有的反应能力。这不仅是一种观点,而是个人经历的体现。 - Partial
9
你真的是在说C++不能让人获得解决问题的技能吗?那么为什么"视频游戏、系统软件和通常对性能要求很高的软件(如Photoshop和iMovie)"会使用C++呢?虽然C++ 是一门复杂的语言,但又怎样呢?接受它吧!当你学习编程时,首先要学习编程语言的基础知识,而不是反过来。C++允许人们从函数式编程到元编程,从静态内存分配到动态内存分配,从条件语句到使用函数对象的for_each循环逐步学习。 - Partial
6
我同意Partial的观点。虽然学习曲线可能会更陡峭一些,但经验肯定会得到回报。另外一个我观察到的事情是,许多以“更容易编码”的语言开始学习的人后来不愿学习C++,也许是因为他们习惯了编码而不必关心内存管理、指针等问题。 - NSRover

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