在使用了Go module之后,除了生成exe位置不一樣以外go build和go install 的區別還有什么呢?
在用go path的時候go install -i會在pkg里生成.a檔案,但是用了go module之后go install -i好像不生成.a了,這是為什么呢?

uj5u.com熱心網友回復:
我覺得可能跟依賴包的管理方式有關吧不用go module(或go dep),依賴包要自己用go get下載到本地,而go mod會是把依賴包下載到臨時檔案夾(pkg/mod),go dep是下載到當前檔案夾的vendor,用go install -i 的時候,這些依賴包的源代碼并不真正存在go path的src下,所以沒法在pkg生成和src相同的目錄結構,所以也就不能在pkg的相同目錄下生成a了(生成的a估計也是在臨時檔案夾里)
uj5u.com熱心網友回復:
好像臨時檔案夾里也沒有,我全盤掃過了沒有對應的.a檔案。這么看好像install這個命令已經沒用處了呀,就是比build多了一個吧exe扔到bin里的操作。
而且好像只能用build去生成.a。install好像沒辦法生成了。
難道是因為.a只是一個中間結果的緣故就被廢棄了?不是說go在編譯的時候先判斷package的原始碼是否有改動,如果沒有的話,就不再重新編譯.a,刪了.a不會使速度下降嘛。而且我好像看到資料有些地方的開發需要用.a當庫檔案吧。。
uj5u.com熱心網友回復:
Go module模式下,go install只是編譯package,并且快取結果,并沒有install操作。也就是其它依賴它的專案編譯時因為有cache會加快速度吧。uj5u.com熱心網友回復:
好像Go module下go install和go build生成的檔案是一樣的耶。都會在\pkg\mod\cache\download目錄下下載東西。除了生成exe的位置不同好像沒發現別的區別,都莫得.a。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/44928.html
標籤:go語言
上一篇:請問下各位大佬:我使用正則運算式要回圈爬取二級頁面的資料時,為什么函式總是運行不充分。而我單獨把具體的二級鏈接運行時,程式卻運行成功
