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

Macos 在Mac OS X Lion上安装libmad:“;错误:您选择的CPU不支持x86-64指令集;,macos,unix,osx-lion,mpeg,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 该库在OSX10.5上安装良好。这是64位兼容性问题吗?我找不到任何关于在Lion上安装的具体说明或文档。有什么建议吗? 谢谢。 < P>默认情况下,雪豹和C + C++编译器在生成的64位

我试图在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
该库在OSX10.5上安装良好。这是64位兼容性问题吗?我找不到任何关于在Lion上安装的具体说明或文档。有什么建议吗?
谢谢。

< P>默认情况下,雪豹和C + C++编译器在生成的64位二进制文件中,而不是在旧版本OS X中的32位。“代码> LBMAD/<代码>配置脚本显然没有被改变以应付这个问题,因此生成了导致32/64位冲突的构建命令。

这意味着修复它的一种方法是强制执行32位构建

但是,将配置脚本引导到正确的CPU类型是很容易的。狮子座:

$ ./configure x86_64-apple-darwin11.3.0
对于雪豹,请更改内核版本:

$ ./configure x86_64-apple-darwin10.6.0

这是一个老问题,但我相信我有一个比沃伦·杨更好的答案

默认情况下,当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

将其复制到下一个位置/sw/bin?说
sudo make install
。这将正确设置库。不要只是复制原始的
.dylib
文件。+1供参考:对于山狮:
/configure x86\u 64-apple-darwin12.2.0
,更一般地说,
uname-a
会告诉你达尔文版本,这样你就可以在未来的版本中进行适当的细分。