私はカスタムパッケージの作成などに関するドキュメントを読んだことがありますが、問題の原因を突き止めることはできません。golang:カスタムパッケージと '未定義'
GOPATH=/Users/lrsmith/GoWorkSpace
|->bin
|->pkg
|->src
|->github.com
|->lrsmith
|-> zaphod
|-> zaphod.go
私は「zaphod」と作成した「github.com/lrsmith/go-icinga2-api/iapi取りに行く」とそれ が同じディレクトリにそれを落とし、PKGの下では.aファイルをやりました。
GOPATH=/Users/lrsmith/GoWorkSpace
|->bin/
|->pkg/
|->..../iapi.a
|->src/
|->github.com/
|->lrsmith/
|-> zaphod/
|-> zaphod.go
|-> go-icinga2-api/
私は ./zaphod.go:11を取得zaphodディレクトリに構築行くときzaphod.goは今
package main
import (
"github.com/lrsmith/go-icinga2-api/iapi"
)
func main() {
t := iapi.Config("zaphod","beeblebrox","http://localhost",true)
}
非常に簡単です:未定義:iapi.Config
私はドキュメント、チェックされたケースを読んで、さまざまな構造を試しましたが、パッケージをロードしてiapi.Configを呼び出せないようです。 iapiコードが動作し、go-icinga2-apiディレクトリに何かを構築すると、うまく動作し、テストはすべてパスします。
私はgo-icinga2-apiをインポートして使用する別のプロジェクト/コードベースを作成したいが、動作させることはできないようだ。
おかげ レン
追加情報。ゴーicinga2-APIの構造がある
client.goは、私はすなわち、1つのレベル、アップ.GOファイルで試してみた// Package iapi provides a client for interacting with an Icinga2 Server
package iapi
import (
"bytes"
"crypto/tls"
"encoding/json"
"fmt"
"net/http"
)
// Server ... Use to be ClientConfig
type Server struct {
Username string
Password string
BaseURL string
AllowUnverifiedSSL bool
httpClient *http.Client
}
// func Config ...
func (server *Server) Config(username, password, url string, allowUnverifiedSSL bool) (*Server, error) {
// TODO : Add code to verify parameters
return &Server{username, password, url, allowUnverifiedSSL, nil}, nil
}
は同じのために/ IAPIの下にネストされていない
go-icinga2-api
|-> iapi
|-> client.go
|-> client_test.go
|-> host.go
.......
結果。
私は質問を更新してください。 go-icinga2-apiのファイルは、dir/iapiの下の1つのパスになります –
ありがとう、それは問題でした。私は新しい関数Newを作成し、それを呼び、期待通りに機能します。 –