如何在 macOS 上加载 Spatialite SQLite 扩展

How to load Spatialite SQLite extension on macOS

我正在尝试在 SQLite 中加载 libspatialite 扩展。根据 installation guide, I downloaded the latest 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 并重新启动以确保收集到任何新的二进制文件。我是否漏掉了一些明显的东西?

根据这个 homebrew formula 对于 libspatialite:

New SQLite3 extension won't load via SELECT load_extension("mod_spatialite"); unless named mod_spatialite.dylib (should actually be mod_spatialite.bundle). See: https://groups.google.com/forum/#!topic/spatialite-users/EqJAB8FYRdI

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

brew install libspatialite