/usr/local/lib/libz.1.dylib, file was built for i3

2019-06-21 04:45发布

having this problem on installing several things on my mac, i think this problem is coming from upgrading my leopard to snow leopard. Also this problem also is linked with macports i think.

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

Any ideas?

Update

To be more specific this happens on installing nokogiri gem

and the log looks like:

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条回答
\"骚年 ilove
2楼-- · 2019-06-21 05:27

This is not about MacPorts: zlib is installed as i386, so you have to build it for x86-64. Here's how to do it:

  1. Update: As Nick says in his comment, you first have to remove old zlib files: sudo rm /opt/local/lib/libz*
  2. Download zlib source code from its webpage
  3. Extract the source, and open a terminal in source location
  4. ./configure, make and sudo make install
  5. If it still doesn't work, remove ruby and install it again (you can do it with RVM)

Hope it helped you.

查看更多
We Are One
3楼-- · 2019-06-21 05:30

It is a macport migration to snow leopard issue, sadly you have to reinstall macports and all the ports to have the right architecture. Read the wiki here: https://trac.macports.org/wiki/Migration

查看更多
疯言疯语
4楼-- · 2019-06-21 05:48
  • You might have x86_64 compiled zlib installed in /usr/local/opt/zlib/ or alternatively do a brew install zlib this will install zlib in /usr/local/Cellar/.
  • Temporary remove libz.* from /usr/local/lib/ into a backup folder.
  • Do gem install nokogiri -v '<version>' --with-zlib-dir=<zlib directory path from step 1>

Nokogiri must be installed by now. Restore the backup libz again.

查看更多
登录 后发表回答