我正在尝试在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_extension
是true
,并且我正在使用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