未使用 1.4.2 静态链接的 Go 程序

试图构建一个运行http服务器的go程序的静态链接版本,并使用net包来确定和解析传入请求的IP地址。使用此构建语句:


CGO_ENABLED=0 go install -a -ldflags '-s' .

我的程序中的这个序言:


package main


import (

    "encoding/json"

    "errors"

    "fmt"

    "log"

    "net"

    "net/http"

    "path/filepath"

    "strings"


    "golang.org/x/blog/content/context/userip"


    "github.com/oschwald/maxminddb-golang"

)

这与 go 1.3 一起构建,生成静态链接程序,但不适用于 go 1.4.2。构建成功,但程序不是静态链接的。


有谁知道发生了什么?


千巷猫影
浏览 175回答 1
1回答

天涯尽头无女友

更多的搜索在 golang 问题跟踪器中找到了这个关于net由于 1.3 和 1.4 之间的变化而无法静态链接导入包的程序的线程。阅读后,我发现ianlancetaylor 建议使用此解决方法使用-installsuffix开关指定cgo. 这使我的构建声明:CGO_ENABLED=0 go install -a -installsuffix cgo -ldflags '-s' .这对我有用。构建成功并生成了一个静态链接程序。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go