在Mac OS X Lion上安装libmad:“错误:您选择的CPU不支持x86-64指令集”

时间:2012-02-14 21:49:54

标签: macos unix osx-lion mpeg

我正在尝试在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上安装的任何具体说明或文档。有什么建议? 感谢。

2 个答案:

答案 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。您可以通过更改此行

来禁用此行为,并在64位Mountain Lion平台上构建它
        i?86-*)           arch="i486" ;;

在./libmad-0.15.1b/configure.ac到此行:

        i?86-*)           arch="" ;;

此应该启用的libmad构建,而不是强迫出于任何架构的系统实际上是,i486