我正在尝试在Mac OS X 10.7 Lion上安装需要libmad(MPEG音频解码器库)库的程序,但安装libmad.0.15.b会导致此错误:
version.c:1: error: CPU you selected does not support x86-64 instruction set
该库在OS X 10.5上安装正常。它是64位兼容性问题吗?我找不到有关在Lion上安装的任何具体说明或文档。有什么建议? 感谢。
答案 0 :(得分:8)
默认情况下,Snow Leopard和更新版本上的C和C ++编译器生成64位二进制文件,而不是旧版本OS X中的32位二进制文件。libmad
配置脚本显然尚未更改为应对有了这个,所以生成构建命令,导致你看到的32/64位冲突。
这意味着解决它的一种方法是强制进行32位构建。
但是,很容易将配置脚本转换为正确的CPU类型。狮子座:
$ ./configure x86_64-apple-darwin11.3.0
对于Snow Leopard,更改内核版本:
$ ./configure x86_64-apple-darwin10.6.0
答案 1 :(得分:2)
这是一个老问题,但我相信我的答案比沃伦杨的更好。
默认情况下,当libmad-0.15.1b构建在无法识别的* 86体系结构上时,它被配置为默认使用-march i486
。您可以通过更改此行
i?86-*) arch="i486" ;;
在./libmad-0.15.1b/configure.ac到此行:
i?86-*) arch="" ;;
此应该启用的libmad构建,而不是强迫出于任何架构的系统实际上是,i486
。