当前位置 博文首页 > 如何在VScode 中编译多个Go文件

    如何在VScode 中编译多个Go文件

    作者:叨陪鲤5 时间:2021-09-13 18:02

             在使用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无法追踪代码等等奇形怪状的问题,这里权当做记录了。同时希望对于后面遇到此类问题的同学,能够快速解决此类问题。

    jsjbwy