go - 有没有办法在 Go 中的任何导入之前设置环境变量?

标签 go

我目前正在测试 Go-SDL2 lib,仅供娱乐。我把二进制文件给了我的一个 friend ,但他的机器上没有安装 SDL。所以我想做的(跳舞)就是分发 4 个 .so 库和二进制文件,这样它就可以在其他 Linux 机器上正常工作。其实很简单,我只需要将 LD_LIBRARY_PATH 设置为指向当前文件夹即可。这是为了测试目的。

问题是,我必须在 导入 go-sdl2 库之前设置此环境变量。现在我只有一个源文件(显然是 main.go)。

我怎样才能做到这一点? (甚至可能吗?)

最佳答案

一个选项是在调用 go-sdl2 之前设置一个脚本来设置 LD_LIBRARY_PATH 环境变量(在同一个脚本中)。

另一个更有趣的选择是使用 Docker image ,根据该图像制作一个 Dockerfile,然后安装 SDL 并进入其中(如 didstopia/sdl2 广告 its Dockerfile ,结合 Golang Dockerfile )。

然后您将拥有一个可重现的标准环境,您无需更改 LD_LIBRARY_PATH。您可以导出该图像,以便您的 friend 进行试验。

关于go - 有没有办法在 Go 中的任何导入之前设置环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30997967/

相关文章:

variables - 如何在函数外声明两个变量

go - 为什么我用 openssl 和 golang 生成的 RSA 签名不同?

go - 如何在不阅读的情况下检查 channel 是否关闭?

戈朗 : convert milliseconds to time

go - Boltdb 中的批处理操作

performance - 在 GOLANG 中尽可能快地递归循环所有文件夹中的所有文件

html - 在 golang html 模板中访问 {{range .}} 范围之外的结构变量

go - 如何惯用地用 Kubernetes API 对象的默认值填充空字段?

Go Routines 有时有效,有时会出现关闭 channel 错误

go - 将字节数组转换为字符串数组