2012-05-15 13 views
11

मुझे अपना पैकेज कहां रखना चाहिए ताकि इसे किसी अन्य पैकेज द्वारा आयात किया जा सके?मैं अपना पैकेज कैसे ढूंढूं?

$ 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

GOPATH का मूल्य क्या है? –

+0

GOPATH सेट नहीं है। –

उत्तर

8

अपना GOPATH सेट करें। GOPATH में अपने पैकेज foo स्रोत (रों) रखो/src/वैकल्पिक-जो कुछ भी/foo/*। जाओ और के रूप में

import "optional-whatever/foo" 

कोड में इसका इस्तेमाल आप जाने उपकरण स्पष्ट रूप से foo स्थापित करने के लिए नहीं जरूरत, कर एक निर्माण उपकरण है, जब भी आवश्यक हो, यह आपके लिए स्वचालित रूप से ऐसा करेगा।

+2

स्पष्टीकरण के लिए: पैकेज एक निर्देशिका होगी (उदा। 'Foo')। आप फ़ोल्डर को मॉड्यूल के रूप में आयात करेंगे, न कि व्यक्तिगत स्रोत फाइलें। – VOIDHand

8

ऐसी कुछ चीजें हैं जो होने की आवश्यकता है। आप "परीक्षण" पैकेज पहले स्थापित करना होगा:

$ 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 

ध्यान दें कि यह आवश्यक pkg बनाने के लिए नहीं है, के रूप में go install आपके लिए क्या कर सकते हैं। एक बार जब आप परीक्षण पैकेज (आमतौर पर एक बुरा नाम, बीटीडब्लू) स्थापित करते हैं तो go build main.go अब अलग-अलग त्रुटियों (उदाहरण के लिए, "आयातित और उपयोग नहीं किया जाता है)

+0

मैं देखता हूं, धन्यवाद विलियम। –

+0

एक नौसिखिया के लिए तारीख के लिए सबसे साफ स्पष्टीकरण। – gmile

-4

शायद, आप main.go के साथ एक ही निर्देशिका में test.go फ़ाइल डाल सकते हैं, और test.go में , यह कुछ इस तरह का उपयोग करता है:

import "./test" 
संबंधित मुद्दे