Macos 在OSX上编译Intel和PPC CPU

Macos 在OSX上编译Intel和PPC CPU,macos,gcc,compiler-construction,cpu-architecture,powerpc,Macos,Gcc,Compiler Construction,Cpu Architecture,Powerpc,我有一台带有64位Intel Core 2 Duo处理器的MacBook Pro,我正在使用gcc(i686-apple-darwin9-gcc-4.0.1)编译可执行文件,我可以在自己的机器上正常运行。最近有人试图在PowerBook G4上运行我的应用程序,但出现了“可执行文件中的CPU类型错误”,我认为这是因为他们的CPU是PPC而不是Intel(也可能是32位而不是64位) 我是否可以使用gcc生成能够在所有不同Mac体系结构中工作的二进制文件,如果可以,我应该使用什么选项?查看gcc的

我有一台带有64位Intel Core 2 Duo处理器的MacBook Pro,我正在使用gcc(i686-apple-darwin9-gcc-4.0.1)编译可执行文件,我可以在自己的机器上正常运行。最近有人试图在PowerBook G4上运行我的应用程序,但出现了“可执行文件中的CPU类型错误”,我认为这是因为他们的CPU是PPC而不是Intel(也可能是32位而不是64位)


我是否可以使用gcc生成能够在所有不同Mac体系结构中工作的二进制文件,如果可以,我应该使用什么选项?

查看gcc的-arch参数查看gcc的-arch参数

您需要查看“通用二进制文件”这是运行的应用程序文件的名称,在ppc和i386体系结构上都没有动态重新编译。正如您所知.app文件(Mac可执行文件)实际上是归档文件,其中包含实际的二进制应用程序。这些文件的分区方式可以使i386和ppc二进制文件都包含在内。

您需要查看“通用二进制文件”。这是一个应用程序文件的名称,该文件在ppc和i386体系结构上运行,无需动态重新编译。正如您所知.app文件(Mac可执行文件)实际上是归档文件,其中包含实际的二进制应用程序。这些文件可以通过这样一种方式进行分区,即i386和ppc二进制文件都包含在内。

为了避免自己和用户将来的麻烦,您应该咬紧牙关,在苹果的
Xcode
中设置您的项目。如果您遵循默认设置,
Xcode
可以处理为多个体系结构构建的所有细节,例如为gcc使用适当的
-arch
标志、使用正确的
SDK
库、与以前的OS X版本的兼容性等。

以避免您和用户将来的麻烦,你应该咬紧牙关,在苹果的
Xcode
中设置你的项目。如果遵循默认设置,
Xcode
可以处理为多个体系结构构建的所有细节,例如为gcc使用适当的
-arch
标志、使用正确的
SDK
库、与以前的OS X版本的兼容性等