-4

在 Mac 机器上在 32 和 64 上创建 hello world 有什么区别?它会是什么样子?我确实已经安装了 Xcode 和 gcc,但是 gcc 在终端中运行时给了我 64 位错误!?没有尝试 Xcode IDE,因为不知道从哪里开始 hello world!谢谢。

4

1 回答 1

3

在 Mac 机器上在 32 和 64 上创建 hello world 有什么区别?

没有任何。无论是针对 32 位还是 64 位架构,编写良好、符合标准的代码都应该没有什么不同。这对于琐碎和复杂的程序都是如此,并且非常有用,因为它允许您维护用于编译这两种类型的可执行文件的单个代码库。在目标架构之间切换应该像翻转编译器开关一样简单。

只有当你做一些特别深奥的事情时,你才需要为不同的“位数”维护不同的代码。在这种情况下,你会看到这样的丑陋:

#ifdef __LP64__
  // 64-bit code
#else
  // 32-bit code
#endif

gcc 在终端运行时给了我 64 位错误!?

由于您既没有发布 1) 您实际尝试过的代码,也没有发布 2) 编译器生成的确切错误,所以我们真正能做的就是猜测。

假设您的代码在编译为 32 位时可以工作,我的猜测是以下两件事之一是正确的:

  1. 你做了一个不可移植的假设,在 32 位架构上是正确的,但在 64 位架构上是错误的。不知道它是什么,但编译器应该会告诉你。注意它的警告并修复你的代码(或者如果绝对必要的话,有条件地保护它,如上所示)。

  2. 您的 Mac 是旧型号,配备 32 位处理器,不支持 64 位。如果您拥有正确版本的编译器,您可以在 32 位处理器上编译 64 位代码,但您无法执行该代码。它只能在 64 位处理器上执行。

没有尝试 Xcode IDE,因为不知道从哪里开始 hello world!

这是完全合理的。Xcode 不会在这里为您提供帮助。您专注于两件事:1)您编写的代码,以及 2)编译器生成的错误。终端可让您轻松访问这两件事。

但是,如果您不习惯从命令行工作,那么安装和使用 IDE 并没有什么坏处。您的目标是学习如何对计算机进行编程,而不是在能够使用终端时炫耀您的极客信誉。如果 GUI 让您更容易阅读和理解正在发生的事情,那么请使用它。

于 2013-04-16T03:08:14.277 回答