2012-05-04 4 views
1

Я пытаюсь установить библиотеки ATLAS BLAS using this guide. У меня работают статические библиотеки, но важно, чтобы у меня тоже были независимые от позиции библиотеки. Я получаю до точки в руководстве, где я должен выпустить make shared получить разделяемые библиотеки и я получаю следующее сообщение об ошибке:ld: неизвестная опция: -melf_x86_64 при компиляции общих библиотек ATLAS на MacOS

$ make shared 
rm -f libatlas.so liblapack.so 
make libatlas.so liblapack.so libf77blas.so libcblas.so liblapack.so 
ld -melf_x86_64 -shared -soname libatlas.so -o libatlas.so \ 
     --whole-archive libatlas.a --no-whole-archive -lc -lpthread -lm 
ld: unknown option: -melf_x86_64 
make[1]: *** [libatlas.so] Error 1 
make: *** [shared] Error 2 

Я прошел через опечатки для ATLAS, но этот вопрос Безразлично» t, похоже, решается. Я был бы признателен за советы относительно того, с каким направлением.

--Andrew

+0

Какую инструментальную цепочку (и версию) вы используете? – trojanfoe

+1

OS X - это платформа «неэльф», поэтому неудивительно, что компоновщик не понимает специфический вариант эльфа. Я могу только догадываться, что ваша конфигурация где-то не так, и использует параметры gnu/linux, если это не так. – talonmies

ответ

2

ld -melf_x86_64 -shared -soname libatlas.so -o libatlas.so --whole-archive libatlas.a --no-whole-archive -lc -lpthread -lm

Этот Makefile является

  1. Богус: одна должна почти никогда не связать что-либо непосредственно с ld
  2. Написано с предположением, что он использует GNU-LD на ELF x86_64 (неверно в вашем случае).

Вам необходимо настроить эти инструкции для своей платформы. Используйте соответствующие команды для создания общей библиотеки MacOS (я не знаю, что это такое, но я уверен, что вы можете использовать поисковую систему и/или man ld, чтобы узнать).