如何在VScode 中編譯多個Go文件
在使用VScode編譯多個go文件多次遇到過一個問題:無法找到對應(yīng)的函數(shù)。具體提示在好像是:在GOPATH和GOROOT路徑中都沒有找到該package或者該函數(shù)。但是實際上,這個函數(shù)所在的go文件就在我的工作空間。 這里簡單記錄下來。
舉個很簡單的例子:src目錄下有個main.go文件, 引用了當(dāng)前目錄下myTools文件夾中的Add函數(shù):

其中
main.go的實現(xiàn)如下:
package main
import (
"fmt"
"myTools"
)
func main() {
sum := myTools.Add(1, 2)
fmt.Println(sum)
}
❇️myTools目錄下的add.go實現(xiàn)如下:
package myTools
func Add(a, b int) int {
return a + b
}
但是在編譯時,提示找不到myTools或者Add函數(shù)之類的。我確認(rèn)環(huán)境變量,包括GOPATH, GOROOT沒有什么問題,但是依然提示類似錯誤。
我最初認(rèn)為必須將自己寫的這部分go文件放到go的安裝路徑下,這樣雖然能解決問題,但是工程不太好管理呀;還會將自己的代碼與源碼混在一起,污染源碼,于情于理都不合適。當(dāng)時也查過相關(guān)資料,網(wǎng)絡(luò)好幾篇都說將這兩個同時編譯即可
go build main.go myTools/add.go
這個確實可以,但是在不同目錄時無法編譯。我也沒有研究這個問題,但是感覺也不方便,如果需要挨個指定要編譯的文件,那豈不是又要寫一個類似makefile的文件嗎???
后來,一個偶然的機(jī)會,他可以了

我回想了下,剛才做過的操作:
go mod init
go mod tidy
之后,便可以通過直接編譯main.go來運行程序了,不再需要指定編譯哪些.go文件,非常的方便。如果有人也遇到類似的問題,可以這樣試一下,希望能解決這樣的問題。
特別說明:
我目前對Go語言正處于學(xué)習(xí)階段,感覺遇到問題比較多的就是:環(huán)境配置問題。各種安裝失敗、編譯出錯,VScode無法追蹤代碼等等奇形怪狀的問題,這里權(quán)當(dāng)做記錄了。同時希望對于后面遇到此類問題的同學(xué),能夠快速解決此類問題。
到此這篇關(guān)于VScode 中編譯多個Go文件的文章就介紹到這了,更多相關(guān)VScode 編譯Go文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go語言繼承功能使用結(jié)構(gòu)體實現(xiàn)代碼重用
今天我來給大家介紹一下在?Go?語言中如何實現(xiàn)類似于繼承的功能,讓我們的代碼更加簡潔和可重用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
golang使用http client發(fā)起get和post請求示例
這篇文章主要介紹了golang使用http client發(fā)起get和post請求示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
Golang哈希算法實現(xiàn)配置文件的監(jiān)控功能詳解
這篇文章主要介紹了Golang哈希算法實現(xiàn)配置文件的監(jiān)控功能,哈希和加密類似,唯一區(qū)別是哈希是單項的,即哈希后的數(shù)據(jù)無法解密,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-03-03

