/usr/local/lib/libz.1.dylib, файл был создан для i386, который не является связываемой архитектурой (x86_64) - PullRequest
5 голосов
/ 13 сентября 2010

с этой проблемой при установке нескольких вещей на моем Mac, я думаю, что эта проблема связана с обновлением моего леопарда до снежного барса.Также эта проблема также связана с macports, я думаю.

/usr/local/lib/libz.1.dylib, file was built for i386 which is not the architecture being linked (x86_64)

Любые идеи?

Обновление

Чтобы быть более конкретным, это происходит при установкекамень nokogiri

и журнал выглядит так:

xslt_stylesheet.c:127: warning: passing argument 1 of ‘Nokogiri_wrap_xml_document’ with different width due to prototype
cc -dynamic -bundle -undefined suppress -flat_namespace -o nokogiri.bundle     
html_document.o html_element_description.o html_entity_lookup.o   html_sax_parser_context.o nokogiri.o xml_attr.o xml_attribute_decl.o xml_cdata.o xml_comment.o xml_document.o xml_document_fragment.o xml_dtd.o xml_element_content.o xml_element_decl.o xml_encoding_handler.o xml_entity_decl.o xml_entity_reference.o xml_io.o xml_libxml2_hacks.o xml_namespace.o xml_node.o xml_node_set.o xml_processing_instruction.o xml_reader.o xml_relax_ng.o xml_sax_parser.o xml_sax_parser_context.o xml_sax_push_parser.o xml_schema.o xml_syntax_error.o xml_text.o xml_xpath_context.o xslt_stylesheet.o -L. -L/usr/local/lib -L/opt/local/lib -L/usr/local/lib -L/usr/lib -L.     -lruby -lexslt -lxslt -lxml2  -lpthread -ldl -lobjc   
ld: in /usr/local/lib/libz.1.dylib, file was built for i386 which is not the architecture being linked (x86_64)
collect2: ld returned 1 exit status
make: *** [nokogiri.bundle] Error 1

Ответы [ 3 ]

14 голосов
/ 13 апреля 2011

Речь идет не о MacPorts: zlib установлен как i386, так что вы должны собрать его для x86-64.Вот как это сделать:

  1. Обновление : Как Ник говорит в своем комментарии, сначала необходимо удалить старые файлы zlib: sudo rm /opt/local/lib/libz*
  2. Скачать zlibисходный код с его веб-страницы
  3. Извлеките источник и откройте терминал в исходной папке
  4. ./configure, make и sudo make install
  5. Если это все еще не работает, удалите ruby ​​и установите его снова (вы можете сделать это с помощью RVM )

Надеюсь, это помогло вам.

1 голос
/ 17 апреля 2015
  • Возможно, в x 100_ * установлен скомпилированный zlib x86_64 или, альтернативно, выполните brew install zlib, и zlib будет установлен в /usr/local/Cellar/
  • Временно удалите libz.* из /usr/local/lib/ в резервную папку.
  • Do gem install nokogiri -v '<version>' --with-zlib-dir=<zlib directory path from step 1>

Nokogiri уже должен быть установлен.Восстановите резервную копию libz снова.

0 голосов
/ 13 сентября 2010

Это переход с macport на снежного барса, к сожалению, вам нужно переустановить macports и все порты, чтобы иметь правильную архитектуру. Прочитайте вики здесь: https://trac.macports.org/wiki/Migration

...