2010-11-24 85 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,它的工作方式就像一個魅力。