gpt4 book ai didi

go - 如何将外部可执行文件添加到 Go 项目

转载 作者:IT王子 更新时间:2023-10-29 01:41:46 24 4
gpt4 key购买 nike

我正在用 Go 编写一个应用程序。然而,在每个平台上,我的代码都将使用从另一个项目以另一种语言编译的外部程序(例如 Windows 中的 C++,Mac 中的 Objective-C 等)。此外部可执行文件使用 os/exec exec.Command 函数调用。

我可以毫无问题地打包我的软件,但仍然存在一个问题,即使用 go run 会导致此文件丢失。

每当我执行 $ go run myproj 时,有没有办法告诉 go 它应该包含外部文件(最好也从源代码构建它)?

AFAIK,go run 只是在 tmp 目录下构建二进制文件,但是它不会包含任何外部文件,例如图像等。例如,当您有两个文件时:$GOPATH/src/main/main.go$GOPATH/ext-tool.binmain.go 的内容是:

package main

import "os/exec"

func main() {
cmd := exec.Command("./ext-tool.bin")
err := cmd.Run()
if err != nil {
os.Exit(1)
}
}

最佳答案

一种替代方法是将您的可执行文件嵌入到您的应用程序构建中。

这是用 go-bindata 完成的或其最近的继任者 unnoted/fileb0x .
在那里,您可以访问内存文件系统中的嵌入式可执行文件。

关于go - 如何将外部可执行文件添加到 Go 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41523148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com