пакет hello не входит в std при выполнении программы на go

Вопрос или проблема

Я устанавливаю g и иду таким путем:

wget -qO- https://raw.githubusercontent.com/voidint/g/master/install.sh | bash
source ~/.bashrc 
g install 1.23.2

Создайте директорию:

mkdir project
cd project

Редактируйте простой hello.go:

package main
import "fmt"
func main(){
    fmt.Println("hello")
}

Укажите версию с помощью менеджера версий:

g use 1.23.2

Соберите его:

go build hello.go

Список и проверка:

ls
hello  hello.go
wc -l hello
9919 hello

Почему скомпилированное hello такое огромное? Оно содержит 9919 строк?

Запустите:

debian@MiWiFi-RA71-srv:~/project$ go run hello
package hello is not in std (/home/debian/.g/go/src/hello)
debian@MiWiFi-RA71-srv:~/project$ go run ./hello
main module (main) does not contain package main/project/hello

Как это исправить?

Ответ или решение

Ваша проблема, связанная с ошибкой "package hello is not in std (/home/debian/.g/go/src/hello)" при попытке запустить вашу Go программу, вероятнее всего, связана с неправильной структурой вашего проекта и путём, по которому Go ищет пакеты. Давайте рассмотрим это подробнее и предложим решение.

1. Понимание структуры проекта Go

Go имеет строгую структуру для организации проектов. Обычно, Go ожидает, что ваш код будет находиться в определённой директории, которая соответствует его модульной системе. Пакеты в Go определяются по полной пути к директории. Если вы хотите создать свой проект, рекомендуется использовать модули Go, которые упрощают управление зависимостями и версиями.

2. Создание правильной структуры проекта

Для того чтобы избежать ошибок, вы можете сделать следующее:

  1. Создайте новый модуль Go:
    В корне вашего проекта выполните команду:

    go mod init myproject

    Здесь myproject — это название вашего модуля. Вы можете использовать любое название, но старайтесь, чтобы оно было уникальным.

  2. Скопируйте ваш код в правильную директорию:
    Убедитесь, что ваш файл hello.go находится в новой структуре с модулем. Можно просто добавить ваш файл в директорию проекта, чтобы она выглядела так:

    project/
    ├── hello.go
    └── go.mod

3. Исправление ошибки компиляции

После инициализации модуля и создания правильной структуры, вам больше не должно быть проблем с запуском вашего кода. Запустите:

go run hello.go

или с использованием команды go build:

go build hello.go
./hello

4. Устранение причины большого размера исполняемого файла

Размер вашего исполняемого файла в 9919 строк может быть связан с неправильной компиляцией или конфликтующими библиотеками. Убедитесь, что вы используете последнюю версию Go и очистите кэш:

go clean -cache

5. Заключение

Следуйте указанным шагам для устранения проблемы с установкой модуля и структуры вашего проекта. Использование модулей в Go значительно упростит управление кодом и его зависимостями, что, в свою очередь, поможет избежать подобных ошибок в будущем. Если у вас остались вопросы или проблемы, вы можете обратиться к официальной документации Go или сообществу разработчиков для получения дополнительной помощи.

Оцените материал
Добавить комментарий

Капча загружается...