【问题标题】:Change dylib search directory in macOS在 macOS 中更改 dylib 搜索目录
【发布时间】:2023-02-06 09:32:05
【问题描述】:

我正在试用 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 而不是 /usr/local/lib 中搜索 libgdal.dylib

【问题讨论】:

    标签: macos go


    【解决方案1】:

    你可以试试设置GDAL_LIBRARY_PATH=/Users/ash/miniconda3/lib/libgdal.dylib

    您可以在运行 go run .... 或作为 os.Setenv("GDAL_LIBRARY_PATH", "/Users/ash/miniconda3/lib/libgdal.dylib") 的 shell 中尝试此操作

    【讨论】:

    • 不幸的是没有工作。遇到同样的错误。
    【解决方案2】:

    将miniconda3 lib目录的路径添加到DYLD_FALLBACK_LIBRARY_PATH环境变量中。在你的情况下,那将是:

    DYLD_FALLBACK_LIBRARY_PATH=/Users/ash/miniconda3/lib:$DYLD_FALLBACK_LIBRARY_PATH YourGoExecutable
    

    注意:不要使用DYLD_LIBRARY_PATH,因为这将clobber现有路径解析,并且很可能会导致意外的问题。

    【讨论】:

      猜你喜欢
      • 2019-07-10
      • 2018-01-22
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-13
      相关资源
      最近更新 更多