У меня есть программа Go, которая использует библиотеку оболочки Qt https://github.com/therecipe/qt. К сожалению, время сборки становится чрезвычайно большим (при условии, что это часть go)
go build -i . // takes about 14 seconds
go run . // takes about 8 seconds
После выполнения любой из приведенных выше команд я получаю предварительно скомпилированные зависимости в моем $GOPATH/pkg/linux_amd64/github.com/therecipe/qt
как .a
файлы, чтобы они не перестраивались каждый раз.
Я пытался использовать ccache
и Gold linker /usr/bin/ld.gold
, как описано в https://github.com/therecipe/qt/wiki/Faster-builds- (Linux) , но это ничего не улучшил. Также эта оболочка Qt поставляется с собственным инструментом сборки qtdeploy
, который я пробовал, но это примерно такое же время сборки.
Система, в которой я работаю:
go version go1.14.4 linux/amd64
Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
16GB Ram
Кто-нибудь знает можно ли хотя бы немного уменьшить время сборки?
EDIT:
Выполнение go build -x .
показывает, что самым большим потребителем времени является следующая команда
~/.go/pkg/tool/linux_amd64/link -o $WORK/b001/exe/a.out -importcfg $WORK/b001/importcfg.link -buildmode=exe -buildid=k8lYa6JYqRdCY9Gyt0jX/16myMybByG5X6rOfaRpS/WHdW2kCTfMCZs2I4x9WE/k8lYa6JYqRdCY9Gyt0jX -extld=g++ ~/.cache/go-build/b5/b5e47b7f77c2df06ba69937dc8b1399b1289b7c90d2e08b3341fdf13e119c860-d