在OSX上编译Intel和PPC CPU

时间:2009-12-03 16:18:49

标签: 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架构中使用的二进制文件,如果有的话,我可以使用哪些选项?

3 个答案:

答案 0 :(得分:2)

查看gcc Apple docs

的-arch参数

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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