猿问

在Go中构建并引用我自己的本地包

我正在玩Google Go,并且很开心(!),但是我在软件包子系统方面遇到了一些问题。


我在Mac OS X Lion上运行Go 1.0.1。我还构建了各种没有问题的单个文件程序(我也使用html / templates毫无问题地构建了一个小型的webapp,它可以编译并运行而没有任何错误)。


我定义了一个“可重用”包(even.go):


package even


func Even(i int) bool {

    return i % 2 == 0

}


func Odd(i int) bool {

    return i % 2 == 1

}

和消费者程序(useeven.go):


package main


import (

    "./even"

    "fmt"

)


func main() {

    a := 5

    b := 6


    fmt.Printf("%d is even %v?\n", a, even.Even(a))

    fmt.Printf("%d is odd %v?\n", b, even.Odd(b))

}

但是当我使用


go build even.go

我什么也没有...没有错误,没有消息...发生什么了?


我应该怎么做?


心有法竹
浏览 333回答 3
3回答

慕桂英546537

您的问题“我应该怎么做?”的答案。如何编写Go代码中有解释。 这确实是非常重要的东西,值得一看。的行为go build似乎令人费解,但实际上是命令行程序的常规行为-没有输出表示该程序成功运行。那是做什么的呢?为此,你的答案在go help build...否则,build将编译软件包,但会放弃结果,仅作为可构建软件包的检查。什么,您想要更多?当然。“如何编写Go代码”说明了执行此操作的好方法。为了快速修复您的程序,我将说明go命令期望每个程序包和每个可执行程序位于单独的目录中。如果仅在useeven.go的位置下创建一个名为even的目录,然后将even.go移至该目录,go run useeven.go则应按其运行方式运行。

牛魔王的故事

go build仅在构建“单个主程序包”时生成输出文件。如果要为其他软件包输出文件,则应使用go install。这将生成该软件包并将其安装到您的pkgs目录中。
随时随地看视频慕课网APP

相关分类

Go
我要回答