2010-11-24 4 views
0

Ich versuche Schuyler Erles Ruby-basierten Geocoder (https://github.com/geocommons/geocoder) und lokal auf Mac OS 10.6 laufen zu lassen. Nach dem Aufruf lib/tiger_import (verfügbar unter og Link) Tiger Shape-Dateien in eine SQLite-DB zu importieren, erhalte ich die folgende Fehlermeldung:Falsche sqlite3.so-Architektur auf Mac OS X

Error: dlopen(bin/../lib/geocoder/us/sqlite3.so, 10): no suitable image found. 
Did find: bin/../lib/geocoder/us/sqlite3.so: mach-o, but wrong architecture 

file lib/geocoder/us/sqlite3.so Laufen in der Tat offenbaren:

lib/geocoder/us/sqlite3.so: Mach-O dynamically linked shared library i386 

Nach vielen Ich konnte keinen geeigneten 64-Bit-Build von sqlite3.so finden. Ist das wahrscheinlich die Ursache meines Problems? Wenn ja, vorgeschlagene Workarounds? Ich bin ein Ruby/sqlite Anfänger, also bin ich sicher, dass ich etwas vermisse. Irgendwelche Hinweise würden geschätzt.

+2

.so Dateien sind freigegebene/dynamische Bibliotheken für Linux (und andere ELF-basierte Unix-Systeme), AFAIK OSX verwendet .dylib für solche Dinge. Hast du diese Datei selbst erstellt oder kam sie als Teil des Pakets? Die Art, wie es in "Tiger_import" verwendet wird, zeigt an, dass es sich um eine SQLite-Erweiterungsbibliothek handelt. –

+0

Guter Punkt. Ich habe den Quellcode ein bisschen mehr gegraben und das Problem gelöst. Danke für die Hilfe. – danpelota

Antwort

2

Nachdem ich den Quellcode ein wenig erforscht hatte, erkannte ich, dass das Makefile "-arch i386" explizit an den C-Compiler übergab. (Ein anderer Benutzer stolperte unabhängig davon zum gleichen Problem und der Auflösung here.) Ich änderte einfach das Makefile, um stattdessen x86_64 zu übergeben, und es funktionierte wie ein Zauber.