2010-09-13 47 views
5

有这个问题在我的mac上安装几个东西, 我觉得这个问题来自于将我的豹升级为雪豹。此外这个问题也与我认为的macports有关。/usr/local/lib/libz.1.dylib,文件是为i386建立的,而不是被链接的架构(x86_64)

/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 

回答

0

这是一个macport迁移到雪豹的问题,不幸的是你必须重新安装macports和所有端口才能拥有正确的体系结构。在这里阅读维基百科:https://trac.macports.org/wiki/Migration

+0

之前做过这个...更新我的帖子请看看 – dombesz 2010-09-13 14:17:48

+0

哦,我的坏...我读/ opt/local而不是/ usr/local。我似乎在/ usr/local中有一个自定义的zlib。你有两个选择:1.找出为什么你需要一个自定义zlib与i386拱门,如果你不删除它。 2.尝试调整你的CFLAGS/LD_LIBRARY_PATH env以从编译器中隐藏/ usr/local – hellvinz 2010-09-13 14:47:48

+0

我想我可以使用imagemagick可能使用的旧os(豹)。在步骤2你能提供信息怎么做吗?,谢谢 – dombesz 2010-09-13 14:56:10

14

这不是关于MacPorts: zlib是作为i386安装的,所以你必须为x86-64构建它。以下是如何做到这一点:

  1. 更新:尼克在他的评论中说,必须先删除旧的zlib文件:从its webpage
  2. sudo rm /opt/local/lib/libz*
  3. 下载zlib的源代码提取源代码,并打开源位置的终端
  4. ./configuremakesudo make install
  5. 如果还是不行,红宝石删除并重新安装(你可以用做到这一点)

希望它对你有所帮助。

+3

这对我很好。我正在使用RVM,并且不必更改有关我的RVM/Ruby安装的任何信息。只需删除旧的zlib文件并重新安装即可。 'sudo rm/opt/local/lib/libz *'。 (只需安装新版本不足以删除这些旧文件。) – Nick 2011-06-03 01:08:00

+1

感谢Nick。你救了我的命。 – juanitofatas 2012-03-28 06:44:28

+0

完美!另一个快乐的Google员工。 <3 – Schrockwell 2013-04-07 06:54:32

1
  • 你可能已经安装在 /usr/local/opt/zlib/ x86_64的编译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。

相关问题