2015-06-20 22 views
2

嘗試構建運行http服務器的go程序的靜態鏈接版本,並使用net程序包確定並解析傳入請求的IP地址。有了這個構建聲明:未使用1.4.2靜態鏈接的Go程序

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" 
) 

這曾與去1.3,產生一個靜態鏈接程序建設,但不走的工作1.4.2。構建成功,但該程序不是靜態鏈接的。

有誰知道發生了什麼事?

回答

5

更多搜索向上調整this thread in the golang issue tracker關於無法靜態鏈接導入net程序包的程序,由於1.3和1.4之間的更改而導致程序無法鏈接。

讀下來我發現this workaround suggested by ianlancetaylor使用-installsuffix開關指定cgo。這使我的建設聲明:

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

哪些工作適合我。構建成功並生成一個靜態鏈接的程序。

相關問題