导入更新未在主程序包中识别

时间:2015-01-15 03:25:49

标签: go

我正在开展一个项目,并且已经创建了一些我在主项目中导入的软件包。

现在当我接受代码并将其移动到外部包中时,我可以从我的主项目中调用它的功能。但是一旦我将新函数添加到我的外部包中,我在构建过程中总是会遇到undefined func...错误。

我试过重建我的外包装......但没有运气。我能够更新对自定义程序包的引用的唯一方法是重命名外部程序包&文件夹中。

例如,如果我在/project/blah/blah.go中有以下内容:

package blah

func DoSomethingCool(s string) {
    fmt.Print(s)
}

我可以在我的主应用程序(project / web / main.go)中将此func称为blah.DoSomethingCool("Hello World")。现在这可以按预期工作。但现在如果我将包装更新为:

package blah

func DoSomethingCool(s string) {
    fmt.Print(s)
}

func DoSomethingElseEvenCooler(p string, q string) {
    fmt.Print(
        fmt.Sprint(p, q),
    )
}

即使重建了blah,我也不能称之为blah.DoSomethingElseEvenCooler(" p"," q")。我最终得到了一个未定义的错误。

但是,如果我将blah重命名为foo并将路径重命名为/project/foo/foo.go,我可以完美地调用foo.DoSomethingElseEvenCooler(" p"," q")精细。似乎对包blah的引用即使已经更改也没有更新。在我建立我的主项目时,有没有办法强迫这个?

或者我错过了什么?

1 个答案:

答案 0 :(得分:0)

Phew ......正在运行

go install
外部包上的

修复了我的问题。谢谢!