Получение ошибки для libxml2.2.dylib "файл не имеет необходимой архитектуры" - PullRequest
4 голосов
/ 20 января 2010

Я пытаюсь использовать rvm для установки Ruby 1.9.2 на мой Mac под управлением Snow Leopard.

Мой .bash_profile содержит

ARCHFLAGS="-arch x86_64"

Чтобы установить ruby, я запускаю:

rvm install 1.9.2 -C --enable-shared

Я получаю ошибку во время компиляции. Вот файл make.error.log:

[2010-01-20 10:03:00] make 
ld: in /usr/local/lib/libxml2.2.dylib, file is not of required architecture
collect2: ld returned 1 exit status
make[1]: *** [../../.ext/i386-darwin10.2.0/tcltklib.bundle] Error 1
make: *** [mkmain.sh] Error 1

EDIT:

Я установил readline из источника и попытался установить, как это:

rvm install 1.9.2 -C --enable-shared,--with-readline-dir=/usr/local 

, что привело к той же ошибке, что и раньше.

Расположение файла rcltklib.bundle:

/usr/local/lib/ruby/1.8/i686-darwin9.7.0/tcltklib.bundle  

(я думаю, что этот файл является частью установки Ruby OSX)

Ответы [ 2 ]

8 голосов
/ 22 января 2010

Теперь, наконец, я понял это.
Я установил ruby ​​1.8.7 из rubyosx , и, похоже, там были неработающие библиотеки, которые rvm использовал для компиляции своих рубинов.

Решение состоит в том, чтобы удалить rubyosx ruby ​​из /usr/local.

Менее радикальное решение - просто переименовать папку /usr/local во время компиляции с помощью rvm. После этого вы можете назвать его обратно, и он работает как положено.

Рад, что теперь работает.

0 голосов
/ 20 января 2010

Вы устанавливаете ARCHFLAGS для двух разных архитектур. Зачем? Попробуйте только с -arch -x86_64 (что, насколько я знаю, по умолчанию для снежного барса).

...