我正在尝试找到一种方法来加快Go程序的编译速度。当前编译时间大约为30秒,这使得工作速度变慢。
当我运行go build -v
时,我发现大部分时间都花费在编译go-sqlite3(它连接到C sqlite库)。然而,由于这个库从不改变,我想知道是否可能防止构建工具每次重新编译它?
我正在尝试找到一种方法来加快Go程序的编译速度。当前编译时间大约为30秒,这使得工作速度变慢。
当我运行go build -v
时,我发现大部分时间都花费在编译go-sqlite3(它连接到C sqlite库)。然而,由于这个库从不改变,我想知道是否可能防止构建工具每次重新编译它?
go install -a github.com/mattn/go-sqlite3
命令安装编译于Go 1.3的软件包到$GOPATH中。目前,您可能已经安装了旧版本在$GOPATH/pkg/
下,因此每次构建时Go都会重新编译它。很可能是由于您升级到go 1.3版本导致的
为了摆脱旧的(不兼容的)二进制文件,我必须删除$GOPATH/pkg,然后它才能再次缓存编译结果
go install
等命令,只需使用 go build
即可。新版本使用构建缓存来确定哪些包需要重新编译。