2012-05-15 41 views
11

Tôi nên đặt gói của mình ở đâu để gói này có thể được gói khác nhập?Tôi làm cách nào để tìm gói của mình?

$ tree 
. 
├── main.go 
└── src 
    └── test.go 

1 directory, 2 files 

$ cat src/test.go 
package test 

$ cat main.go 
package main 

import "test" 

$ go build main.go 
main.go:3:8: import "test": cannot find package 
+0

giá trị của GOPATH là gì? –

+0

GOPATH chưa được đặt. –

Trả lời

8

Đặt GOPATH của bạn. Đặt nguồn gói foo của bạn (s) trong GOPATH/src/tùy chọn-bất cứ điều gì/foo/*. Đi và sử dụng nó trong mã như

import "optional-whatever/foo" 

Bạn không cần phải cài đặt một cách rõ ràng foo, công cụ đi là một công cụ xây dựng, nó sẽ làm điều đó tự động cho bạn bất cứ khi nào cần thiết.

+2

Để làm rõ: gói sẽ là một thư mục (ví dụ: 'foo'). Bạn sẽ nhập thư mục dưới dạng mô đun, chứ không phải các tệp nguồn riêng lẻ. – VOIDHand

8

Có một vài điều cần phải xảy ra. Bạn phải cài đặt gói "thử nghiệm" đầu tiên:

$ export GOPATH=$(pwd) # Assumes a bourne shell (not csh) 
$ mkdir src/test 
$ mv src/test.go src/test/test.go 
$ mkdir pkg     # go install will put packages here 
$ go install test   # build the package and put it in $GOPATH/pkg 
$ go build main.go 

Lưu ý rằng không cần thiết phải tạo pkg, làm go install sẽ làm điều đó cho bạn. Khi bạn đã cài đặt gói thử nghiệm (thường là tên xấu, BTW) go build main.go giờ đây sẽ cung cấp các lỗi khác nhau (ví dụ: "đã nhập và không sử dụng")

+0

Tôi hiểu, cảm ơn William. –

+0

Giải thích rõ ràng nhất cho người mới đến nay. – gmile

-4

có thể, bạn có thể đặt các tập tin test.go trong cùng thư mục với main.go, và trong test.go, nó sử dụng một cái gì đó như thế này:

import "./test" 
Các vấn đề liên quan