使用1.4.2将程序静态链接起来

Mar*_*ter 2 go static-linking

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

CGO_ENABLED=0 go install -a -ldflags '-s' .
Run Code Online (Sandbox Code Playgroud)

这个序言在我的程序中:

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"
)
Run Code Online (Sandbox Code Playgroud)

这与build 1.3一起工作,生成一个静态链接的程序,但是没有使用go 1.4.2.构建成功,但程序没有静态链接.

有谁知道发生了什么?

Mar*_*ter 5

更多搜索打开了这个线程在golang问题跟踪有关无法静态链接导入程序net包,由于1.3和1.4之间变化.

读下来我发现ianlancetaylor建议使用该-installsuffix开关来指定cgo.这使我的构建声明:

CGO_ENABLED=0 go install -a -installsuffix cgo -ldflags '-s' .
Run Code Online (Sandbox Code Playgroud)

这对我有用.构建成功并生成静态链接程序.