【发布时间】:2012-12-25 11:42:12
【问题描述】:
当这些二进制文件在 Mac OS X 10.7.x(“Lion”)和更早版本下运行时,我在 Mac OS X 10.8.2(“Mountain Lion”)下使用 GCC 4.7.2 编译的二进制文件出现 Illegal Instruction: 4 错误版本。二进制文件在 Mac OS X 10.8.x 下正常工作。
我在编译标志中添加了-mmacosx-version-min=10.5,这似乎有助于解决 10.5.x、10.6.x 和 10.7.x 客户端的问题,无论是什么问题。
我的问题是什么:
-
Illegal Instruction: 4错误是什么? - 为什么
-mmacosx-version-min=10.x会在10.x及更高版本的客户端上修复此特定错误?
我想将此修复应用到我的 makefile,但想在我扣动扳机之前知道它在做什么。 (我会有更大的二进制文件吗?我还有 64 位二进制文件吗?我应该知道这种方法的陷阱吗?意外的副作用?等等)
【问题讨论】:
-
Snow Leopard 是 Mac OSX 10.6,请澄清/更正
-
缺少返回值可能会导致“非法指令:4”。我昨天遇到了这个。注意我的编译器警告让我走上了正确的轨道。
-
七年前我问过这个问题,今天无法为您提供帮助,抱歉。我确实记得曾尝试为旧版本的 Mac OS X 分发二进制文件,尽管现在这似乎是一场傻瓜游戏。
标签: macos gcc osx-lion osx-mountain-lion osx-leopard