Установите libmad на Mac OS X Lion: «ошибка: выбранный вами процессор не поддерживает набор инструкций x86-64» - PullRequest
8 голосов
/ 15 февраля 2012

Я пытаюсь установить программу, для которой требуется библиотека libmad (библиотека аудиодекодера MPEG) в Mac OS X 10.7 Lion, но установка 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 ]

8 голосов
/ 29 февраля 2012

По умолчанию компиляторы C и C ++ в Snow Leopard и новее генерируют 64-битные двоичные файлы, а не 32-битные, как в более старых версиях OS X. Очевидно, что скрипт конфигурации libmad не был изменен, чтобы справиться с этим и генерирует команды сборки, которые вызывают 32/64-битный конфликт, который вы видите.

Это означает, что один из способов исправить это - заставить 32-битную сборку.

Но достаточно легко указать скрипт конфигурации в правильном типе процессора. Для льва:

$ ./configure x86_64-apple-darwin11.3.0

Для Snow Leopard измените версию ядра:

$ ./configure x86_64-apple-darwin10.6.0
2 голосов
/ 12 октября 2012

Это старый вопрос, но я думаю, что у меня есть лучший ответ, чем у Уоррена Янга.

По умолчанию libmad-0.15.1b настроен по умолчанию на использование -march i486, когда он построен на* 86 архитектура, которую он не распознает.Вы можете отключить это поведение и получить его на 64-битной платформе Mountain Lion, изменив эту строку

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

in ./libmad-0.15.1b/configure.ac на эту строку:

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

Это должно позволить libmad собираться для любой архитектуры, какой на самом деле является система, вместо форсирования i486.

...