当我在Mac OS X 10.8.2(“Mountain Lion”)下使用GCC 4.7.2编译二进制文件时,再在Mac OS X 10.7.x和早期版本下运行这些二进制文件时,会出现 “Illegal Instruction: 4” 错误。但是在Mac OS X 10.8.x下,这些二进制文件可以正常工作。
我将编译标志添加了“-mmacosx-version-min=10.5”,这似乎有助于解决10.5.x、10.6.x和10.7.x客户端的问题,不管那个问题具体是什么。
下面是我的问题:
1. “Illegal Instruction: 4”错误是什么?
2. 为什么“-mmacosx-version-min=10.x”可以解决在“10.x”及更高版本客户端上的特定错误?
我想将此修复应用于我的makefile中,但在执行之前想知道它是如何工作的。(我的二进制文件是否会更大?我的二进制文件是否仍然是64位?使用此方法是否存在需要注意的问题?是否存在意外的副作用等等。)
我将编译标志添加了“-mmacosx-version-min=10.5”,这似乎有助于解决10.5.x、10.6.x和10.7.x客户端的问题,不管那个问题具体是什么。
下面是我的问题:
1. “Illegal Instruction: 4”错误是什么?
2. 为什么“-mmacosx-version-min=10.x”可以解决在“10.x”及更高版本客户端上的特定错误?
我想将此修复应用于我的makefile中,但在执行之前想知道它是如何工作的。(我的二进制文件是否会更大?我的二进制文件是否仍然是64位?使用此方法是否存在需要注意的问题?是否存在意外的副作用等等。)