2010-09-13 50 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。

相關問題