在我的Mac上安装好几件事时遇到这个问题, 我认为这个问题来自于将我的豹子升级为雪豹。此外,这个问题也与我认为的macports有关。
/usr/local/lib/libz.1.dylib, file was built for i386 which is not the architecture being linked (x86_64)
有什么想法吗?
更新
更具体地说,这种情况发生在安装nokogiri gem
上,日志如下:
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
答案 0 :(得分:14)
这不是关于MacPorts: zlib安装为i386,因此您必须为x86-64构建它。这是如何做到的:
sudo rm /opt/local/lib/libz*
./configure
,make
和sudo make install
希望它对你有所帮助。
答案 1 :(得分:1)
/usr/local/opt/zlib/
或者做一个brew install zlib
这将在/usr/local/Cellar/
中安装zlib。 libz.*
临时删除/usr/local/lib/
到备份文件夹中。 gem install nokogiri -v '<version>' --with-zlib-dir=<zlib directory path from step 1>
现在必须安装Nokogiri。再次恢复备份libz。
答案 2 :(得分:0)
这是一个macport迁移到雪豹问题,遗憾的是你必须重新安装macports和所有端口才能拥有正确的架构。在这里阅读维基:https://trac.macports.org/wiki/Migration