2010-11-24 86 views
0

我试图让Schuyler Erle的基于Ruby的地理编码器(https://github.com/geocommons/geocoder)在Mac OS 10.6上本地运行。当打电话的lib/tiger_import(可在上面的链接)导入虎shape文件到一个SQLite数据库,我收到以下错误信息:在Mac OS X上错误的sqlite3.so体系结构

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确实揭示:

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

大量的后搜索,我一直没有找到合适的64位sqlite3.so构建。这可能是我的问题的原因?如果是这样,任何建议的解决方法?我是一名Ruby/sqlite新手,所以我确信我错过了一些东西。任何线索将不胜感激。

+2

.so文件是Linux(和其他基于ELF的unixen)系统的共享/动态库,AFAIK OSX使用.dylib来处理此类事情。您是自己创建该文件还是将其作为软件包的一部分?它在`tiger_import`中使用的方式表明它是一个SQLite扩展库。 – 2010-11-24 06:35:58

回答

2

在仔细研究源代码后,我意识到makefile显式地将“-arch i386”传递给C编译器。 (另一个用户独立地偶然发现了相同的问题和解决方案here。)我只是简单地将makefile改为传递x86_64,它的工作方式就像一个魅力。