【问题标题】:Wrong sqlite3.so architecture on Mac OS XMac OS X 上的 sqlite3.so 架构错误
【发布时间】:2010-11-24 05:30:50
【问题描述】:

我正在尝试让 Schuyler Erle 的基于 Ruby 的地理编码器 (https://github.com/geocommons/geocoder) 在 Mac OS 10.6 上本地运行。在调用 lib/tiger_import(在上面的链接中可用)将 Tiger shapefile 导入到 sqlite db 时,我收到以下错误消息:

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 新手,所以我确定我错过了一些东西。任何线索将不胜感激。

【问题讨论】:

  • .so 文件是 Linux(和其他基于 ELF 的 unixen)系统的共享/动态库,AFAIK OSX 使用 .dylib 来处理这些事情。您是自己构建该文件还是作为软件包的一部分提供的?在tiger_import中的使用方式表明它是一个SQLite扩展库。
  • 好点。我又挖掘了源代码并解决了这个问题。感谢您的帮助。

标签: ruby sqlite geocoding sqlite3-ruby


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2013-01-07
    • 2019-04-01
    • 2011-10-19
    相关资源
    最近更新 更多