ゴーラン/ビルドは、ソースファイルを見つけることができません

3therk1ll:

私は別のカスタムパッケージからの輸入印刷機能をという単純なハローワールドスタイルのプログラムを実行しようとしていますが、Goがtehの正しいにもかかわらず、それを見つけることができない$GOPATHなどというのセット。

何がそれはTEHファイルがピックアップされるようになります不足していますか?

etherk1ll@ubuntu:~/Development/GoWorkSpace/src/sonarparser$ echo $GOPATH 
/home/etherk1ll/Development/GoWorkSpace/
etherk1ll@ubuntu:~/Development/GoWorkSpace/src/sonarparser$ pwd
/home/etherk1ll/Development/GoWorkSpace/src/sonarparser
etherk1ll@ubuntu:~/Development/GoWorkSpace/src/sonarparser$ ls
jsonparser.go  main.go
etherk1ll@ubuntu:~/Development/GoWorkSpace/src/sonarparser$ go run main.go 
main.go:5:2: cannot find package "sonarparser/jsonparser" in any of:
    /usr/local/go/src/sonarparser/jsonparser (from $GOROOT)
    /home/etherk1ll/Development/GoWorkSpace/src/sonarparser/jsonparser (from $GOPATH)

main.go

package main

import (
    "fmt"
    "jsonparser"
)

func main() {
    fmt.Println("Hello world 1")
    fmt.Println(jsonparser.HelloTwo)
}

jsonparser.go

package jsonparser

import "fmt"

func HelloTwo() {
    fmt.Println("Hello world 2")
}
HQT:

のでjsonparser.gomain.go同じパッケージ内にある、Goが同じパッケージ名を持つように、これらのファイルが必要です。あなたは、実行のための主要な機能を定義しているためと、パッケージには、「メイン」でなければなりません。

ステップ1:あなたが名前を変更する必要がありますのでjsonparser.goへのパッケージをmain

// jsonparser.go
package main

import "fmt"

func HelloTwo() {
    fmt.Println("Hello world 2")
}

ステップ2:あなたが更新する必要がmain.goインポートパスを修正するためにファイルを:

// main.go
package main

import (
    "fmt"
)

func main() {
    fmt.Println("Hello world 1")
    HelloTwo()
}

ステップ3:次に、あなたは、次のコマンドを実行します(コマンド内のすべての必要なファイルを含める必要があります)

go run main.go jsonparser.go

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=415092&siteId=1