我正在尝试在SQLite中加载libspatialite扩展。按照installation guide,我下载了最新的libspatialite,并将随附的libspatialite.1.1.3.dylib文件移动到了/usr/local/lib

greg /usr/local/lib $ls | grep libspatialite
libspatialite.1.1.3.dylib


但是,我无法加载扩展。

sql> SELECT load_extension('libspatialite.1.1.3.dylib')
[2017-09-19 10:45:25] [1] [SQLITE_ERROR] SQL error or missing database (dlopen(libspatialite.1.1.3.dylib.dylib, 10): image not found)


我还尝试将libspatialite.1.1.3.dylib.dylib与sqlite文件存储在同一目录中,但是没有运气。

我已经确认enable_load_extensiontrue,并且我正在使用DataGrip作为我的IDE。我还退出了DataGrip并重新启动,以确保收集到任何新的二进制文件。我缺少明显的东西吗?

最佳答案

按照libspatialite的homebrew formula


除非命名为SELECT load_extension("mod_spatialite");(实际上应该是mod_spatialite.bundle),否则不会通过mod_spatialite.dylib加载新的SQLite3扩展。参见:https://groups.google.com/forum/#!topic/spatialite-users/EqJAB8FYRdI


因此,如果手动安装,则需要按照建议重命名动态库文件。或者,您可以让Homebrew为您完成安装:

brew install libspatialite

08-18 14:32