如何在VScode 中編譯多個Go文件

         在使用VScode編譯多個go文件多次遇到過一個問題:無法找到對應的函數。具體提示在好像是:在GOPATH和GOROOT路徑中都沒有找到該package或者該函數。但是實際上,這個函數所在的go文件就在我的工作空間。 這裡簡單記錄下來。

        舉個很簡單的例子:src目錄下有個main.go文件, 引用瞭當前目錄下myTools文件夾中的Add函數:

 其中

main.go的實現如下:

package main
 
import (
	"fmt"
	"myTools"
)
 
func main() {
	sum := myTools.Add(1, 2)
	fmt.Println(sum)
}

 ❇️myTools目錄下的add.go實現如下:

package myTools
 
func Add(a, b int) int {
	return a + b
}

但是在編譯時,提示找不到myTools或者Add函數之類的。我確認環境變量,包括GOPATH, GOROOT沒有什麼問題,但是依然提示類似錯誤。

我最初認為必須將自己寫的這部分go文件放到go的安裝路徑下,這樣雖然能解決問題,但是工程不太好管理呀;還會將自己的代碼與源碼混在一起,污染源碼,於情於理都不合適。當時也查過相關資料,網絡好幾篇都說將這兩個同時編譯即可

go build main.go myTools/add.go

這個確實可以,但是在不同目錄時無法編譯。我也沒有研究這個問題,但是感覺也不方便,如果需要挨個指定要編譯的文件,那豈不是又要寫一個類似makefile的文件嗎???

後來,一個偶然的機會,他可以瞭

 我回想瞭下,剛才做過的操作:

go mod init

go mod tidy

之後,便可以通過直接編譯main.go來運行程序瞭,不再需要指定編譯哪些.go文件,非常的方便。如果有人也遇到類似的問題,可以這樣試一下,希望能解決這樣的問題。

特別說明:

         我目前對Go語言正處於學習階段,感覺遇到問題比較多的就是:環境配置問題。各種安裝失敗、編譯出錯,VScode無法追蹤代碼等等奇形怪狀的問題,這裡權當做記錄瞭。同時希望對於後面遇到此類問題的同學,能夠快速解決此類問題。

到此這篇關於VScode 中編譯多個Go文件的文章就介紹到這瞭,更多相關VScode 編譯Go文件內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: