2012-04-14 8 views
3

Ich versuche, das phashion zu installieren, das die pHash-Bibliothek kompilieren muss. pHash hängt von libjpeg ab. Das Juwel installiert gut auf Linux-Boxen, aber ich habe einige Probleme auf meinem Mac (Lion 10.7.3) mit ihm:Wie kann ich einen Edelsteininstallationsvorgang fortsetzen

Ich habe libjpeg über MacPorts installiert, aber wenn ich laufen der Prozess fehlschlägt, beschweren sich über die fehlende libjpeg.

Dies ist der Fehler, den ich bekommen:

gcc -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0 -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -I/Library/Ruby/Gems/1.8/gems/phashion-1.0.4/ext/phashion_ext/include -L/Library/Ruby/Gems/1.8/gems/phashion-1.0.4/ext/phashion_ext/lib -x c++ -c phashion_ext.c 
cc -arch i386 -arch x86_64 -pipe -bundle -undefined dynamic_lookup -o phashion_ext.bundle phashion_ext.o -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L/Library/Ruby/Gems/1.8/gems/phashion-1.0.4/ext/phashion_ext/lib -L/Library/Ruby/Gems/1.8/gems/phashion-1.0.4/ext/phashion_ext/lib -L. -arch i386 -arch x86_64  -lruby -lpthread -lpHash_gem -lstdc++ -ljpeg 
ld: library not found for -ljpeg 
collect2: ld returned 1 exit status 
ld: library not found for -ljpeg 
collect2: ld returned 1 exit status 
lipo: can't open input file: /var/tmp//ccCwUAM1.out (No such file or directory) 
make: *** [phashion_ext.bundle] Error 1 


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/phashion-1.0.4 for inspection. 
Results logged to /Library/Ruby/Gems/1.8/gems/phashion-1.0.4/ext/phashion_ext/gem_make.out 

libjpeg liegt in /opt/local/lib. Also habe ich mir das Makefile des Edelsteins angesehen und den Bibliotheksweg zu den ldflags hinzugefügt. Jetzt läuft alles gut und die Bibliothek scheint zu kompilieren.

Was nun? Wenn ich wieder gem install phashion starte, wird mein Makefile überschrieben.

Also wie kann ich den Installationsvorgang erneut starten, ohne meine Änderungen an dem Edelstein zu verlieren?

PS: Ich habe versucht, in das Verzeichnis des Edelsteins zu ändern und führen rake, aber es funktioniert nicht mit dieser Fehlermeldung:

WARNING: rake-compiler found compiled files in 'ext/phashion_ext' directory. Please remove them. 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -I"lib:lib:test" -I"/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib" "/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb" "test/**/test_*.rb" 
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `gem_original_require': no such file to load -- phashion_ext (LoadError) 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `require' 
    from ./lib/phashion.rb:33 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `gem_original_require' 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `require' 
    from ./test/helper.rb:3 
    from /Library/Ruby/Gems/1.8/gems/phashion-1.0.4/test/test_phashion.rb:1:in `require' 
    from /Library/Ruby/Gems/1.8/gems/phashion-1.0.4/test/test_phashion.rb:1 
    from /Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:10:in `require' 
    from /Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:10 
    from /Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:9:in `each' 
    from /Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:9 
    from /Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:4:in `select' 
    from /Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:4 
rake aborted! 
+0

ich in der Lage war, ohne zusätzliche Libs diese auf meinem Mac zu installieren. Mein Vorschlag: 'gem uninstall phason 'und dann' gem install phason '... bekommst du die Nachricht Native Extensions erstellen. Das könnte eine Weile dauern ...? – hagope

+0

Ja, das Juwel entfernt und neu installiert, aber kein Glück. Ich habe meine Frage mit dem Fehler, den ich erhalte, aktualisiert und meine OS-Version (Lion 10.7.3) hinzugefügt. Musstest du libjpeg installieren und hast du MacPorts (oder Brew) benutzt? – Wukerplank

Antwort

0

Haben Sie die neuesten XCode installiert?

  1. XCode installieren 4.4
  2. Installieren Kommandozeilen-Tools von Xcode 4.4 Dialog Einstellungen
+0

Ja, alles an Ort und Stelle. – Wukerplank

Verwandte Themen