我对系统编程非常陌生。使用内置依赖关系构建
我有一个Go程序,它使用net/http
并启动一个http服务器。
当我构建Windows二进制文件并在目标Windows机器上尝试时,在启动服务器之前没有任何工作,除了Printf
。
只要我在目标Windows机器上安装Go,一切都开始工作!
这里是我的程序:
package main
import (
"fmt"
"log"
"os/exec"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there @%s!", r.URL.Path[1:])
}
func main() {
path, err := exec.LookPath("go")
if err != nil {
log.Fatal("Go is not your fortune :|")
}
fmt.Printf("Go is available at %s\n", path)
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
如果go
不建全,且其程序的依赖关系,然后我该怎么办呢?如果是这样,为什么它不工作?
在运行任何Go程序之前,目标系统是否必须安装go
?
请帮忙!谢谢。
看起来像加载动态库时崩溃了。也许在安装完'go'之后,必要的二进制文件就会进入win32/wow64目录,因此它有效吗?您可以尝试将必要的运行时动态库添加到二进制目录(或PATH)并查看是否足够。 – hauron
运行时不需要安装源代码。您需要展示如何构建二进制文件以及您收到的输出内容。 – JimB
@JimB我已经添加了我的程序。如果'Go'没有安装,它只记录错误并退出! – Mehulkumar