我正在试用godal库,并编写了如下简单脚本:
package main
import (
"github.com/airbusgeo/godal"
)
func main() {
godal.RegisterAll()
}
运行go run main.go
会引发以下错误
dyld[19569]: Library not loaded: @rpath/libgdal.30.dylib
Referenced from: /private/var/folders/y5/yh59dj093xn_dz8lm0mhv6lh0000gp/T/go-build1573968352/b001/exe/test
Reason: tried: '/usr/local/lib/libgdal.30.dylib' (no such file), '/usr/lib/libgdal.30.dylib' (no such file)
signal: abort trap
godal依赖于gdal,我是通过conda安装的。因此,dylib位于我的conda文件夹下-/Users/ash/miniconda3/lib
而不是/usr/local/lib
。
如何让程序在/Users/ash/miniconda3/lib
中搜索libgdal.dylib
而不是/usr/local/lib
?
2条答案
按热度按时间zzlelutf1#
您可以尝试设置
GDAL_LIBRARY_PATH=/Users/ash/miniconda3/lib/libgdal.dylib
您可以在运行
go run ....
的shell中或作为os.Setenv("GDAL_LIBRARY_PATH", "/Users/ash/miniconda3/lib/libgdal.dylib")
尝试此操作jdgnovmf2#
将miniconda3 lib目录的路径添加到
DYLD_FALLBACK_LIBRARY_PATH
环境变量中。在您的示例中,该路径应为:注意:不要使用
DYLD_LIBRARY_PATH
,因为这将使用clobber现有路径解析,并且很可能导致意外的问题。