Writerim
@Writerim
Заполнить позже...

Как сделать пакет на golang?

Здравствуйте. Подскажите пожалуйста как сделать пакет для Go?
просто только что начал изучать и настраивать проект как наткнулся на понимание создания пакета.

> echo $GOROOT
> /home/sergey/go

структура каталога

  • go
    • index.go
  • src
    • pkg
      • test
        • test.go
  • bin
82e2985e541944ef92762daeb03514cb.png

содержимое index.go
package main

import "fmt"
import "test"

func main() {
    xs := []float64{1,2,3,4}
    avg := test.Average(xs)
    fmt.Println(avg)
}


содержимое test.go
package test

func Average(xs []float64) float64 {
    total := float64(0)
    for _, x := range xs {
        total += x
    }
    return total / float64(len(xs))
}


результаты выполнения команд

~/go/src/pkg/test$ go install

package test
imports runtime: cannot find package "runtime" in any of:
/home/sergey/go/src/pkg/runtime (from $GOROOT)
($GOPATH not set)

-------------------------------------
~/go$ go run index.go

index.go:3:8: cannot find package "fmt" in any of:
/home/sergey/go/src/pkg/fmt (from $GOROOT)
($GOPATH not set)
package runtime: cannot find package "runtime" in any of:
/home/sergey/go/src/pkg/runtime (from $GOROOT)
($GOPATH not set)
  • Вопрос задан
  • 5930 просмотров
Решения вопроса 1
kai_zer_ru
@kai_zer_ru
Программист, разработка на python, golang, php
imports runtime: cannot find package "runtime" in any of:
говорит о том, что стандартные библиотеки не могут быть найдены, а значит - либо криво установлен сам GO, либо криво прописаны пути.
Что выдаёт
go env
?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
uvelichitel
@uvelichitel Куратор тега Go
habrahabr.ru/users/uvelichitel
При канонической инсталляции Go директорий ~/go/src/pkg/ $GOROOT/src/pkg/ вообще не должно быть. Мой совет - сносите все и ставьте начисто из исходников. Процедура 'install from source' хорошо документирована и редко вызывает затруднения. GOROOT по умолчанию будет /usr/local/go (можно конечно развернуть и в home). GOPATH хотя и может быть внутри GOROOT но не обязан, они вообще не связаны. Внутри GOROOT и GOPATH будут каталоги src и pkg - для исходников и собранных библиотек соответственно. pkg не должен быть внутри src.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы