2012-02-14 4 views
8

Mac OS X 10.7 Lion에서 libmad (MPEG 오디오 디코더 라이브러리) 라이브러리가 필요한 프로그램을 설치하려고합니다. libmad.0.15.b를 설치하면이 오류가 발생합니다.Mac OS X Lion에 libmad를 설치하십시오. "오류 : 선택한 CPU가 x86-64 명령어 세트를 지원하지 않습니다."

version.c:1: error: CPU you selected does not support x86-64 instruction set 

해당 라이브러리는 OS X 10.5에 정상적으로 설치됩니다. 64 비트 호환성 문제입니까? 라이온 설치와 관련하여 구체적인 지침이나 문서를 찾을 수 없습니다. 어떤 제안? 감사합니다. .

답변

8

기본적으로 Snow Leopard 이상의 C 및 C++ 컴파일러는 이전 버전의 OS X에서와 같이 32 비트가 아닌 64 비트 바이너리를 생성합니다. libmad 구성 스크립트는이 문제를 해결하기 위해 분명히 변경되지 않았습니다. 따라서 32/64 비트 충돌을 일으키는 빌드 명령을 생성합니다.

즉,이를 해결하는 한 가지 방법은 32 비트 빌드를 강제하는 것입니다.

그러나 구성 스크립트를 올바른 CPU 유형으로 단서를 작성하기는 쉽습니다. 사자의 경우 :

$ ./configure x86_64-apple-darwin11.3.0 

스노우 레오파드 (Snow Leopard)의 경우, 커널 버전 변경 :

$ ./configure x86_64-apple-darwin10.6.0 
+0

어디로 복사 ​​하시겠습니까?/sw/bin? – nycynik

+0

'sudo make install'라고 말하십시오. 그러면 라이브러리가 올바르게 설정됩니다. 원시'.dylib' 파일을 복사하지 마십시오. –

+1

+1 참고 : Mountain Lion의 경우 : ./configure x86_64-apple-darwin12.2.0' 그리고 더 일반적으로'uname -a'는 다윈 버전을 알려주므로 향후 버전을 위해 적절히 서브 할 수 있습니다. – Asaph

2

이 오래된 질문입니다,하지만 난 워렌 영의보다 더 나은 대답을 생각합니다.

기본적으로 libmad-0.15.1b는 인식되지 않는 * 86 아키텍처로 빌드 될 때 -march i486을 사용하도록 기본적으로 구성됩니다. 이 동작을 해제하고이 라인에 ./libmad-0.15.1b/configure.ac이 라인

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

를 변경하여, 여러분의 64 비트 마운틴 라이온 플랫폼 구축을 얻을 수 있습니다 :

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

이렇게하면 libmad가 i486을 강제로로드하는 대신 시스템이 실제로있는 아키텍처를 빌드 할 수있게됩니다.

관련 문제