Size: a a a

2020 December 12

s

salvoroni in Go-go!
.
├── configs
│   ├── config.go
│   └── go.mod
└── main.go
go.mod
module configs

go 1.15
мне нужно сделать модуть configs с пакетом config но что-то идет не так
main.go:5:2: cannot find package "configs/config" in any of:
       /usr/lib/go/src/configs/config (from $GOROOT)
       /home/salvoroni/.go/src/configs/config (from $GOPATH)
импортирую как
import "configs/config"

Помогите пожалуйста
Скажите что я делаю не так?
источник

S

Sergey in Go-go!
абсолютные пути используй всегда.
источник

S

Sergey in Go-go!
и импортируют пакет, а не файл
import "you.module.path/configs"
источник

s

salvoroni in Go-go!
сейчас попробую
спасибо
источник

s

salvoroni in Go-go!
не выходит(
почему в го так плохо с пакетами и модулями (или это фича такая)
в си линковка динамических и статических бибилотек и то легче
источник

S

Sergey in Go-go!
пока твой подпакет не опубликован - добавь в go.mod основного replace you.module.path/configs => ./configs
источник

S

Sergey in Go-go!
просто надо почитать сначала документацию по модулям, вдумчиво. в го очень удобная и гибкая система модулей. пока не разберёшься - всё сложно и запутано.
источник

s

salvoroni in Go-go!
Пока что она выглядит крайне странно
почему нельзя просто как в си указывать путь до либ при компиляции? Что же в этом гибкого и удобного?
источник

S

Sergey in Go-go!
путь какой? локальный? а где взять эти либы, чтобы положить локально? а какую версию? в го это решается одной строчкой в go.mod и ты точно знаешь какой именно модуль и какой версии будет использоваться.
источник

s

salvoroni in Go-go!
в том то и дело что путь любой
в плане контроля версий си неудачный пример так как там надо следить самому
не такой высокий уровень у си как у го
но в целом зачем вам новые версии если старые работают отлично? наоборот может быть баг в новой или несовместимость и придется чинить
хотя это уже больше домагогия
источник

с

сонная википедия... in Go-go!
salvoroni
Пока что она выглядит крайне странно
почему нельзя просто как в си указывать путь до либ при компиляции? Что же в этом гибкого и удобного?
просто как в Си это значит без какой-либо системы просто добавлять беспорядочно пути
источник

s

salvoroni in Go-go!
сонная википедия
просто как в Си это значит без какой-либо системы просто добавлять беспорядочно пути
ну обычно создается дирректория lib и там просто все хранится
источник

s

salvoroni in Go-go!
и при компиляции флаг -L./lib и готово
источник

с

сонная википедия... in Go-go!
это одна из причин почему я не люблю C/C++, за то что почти за 40 лет существования языка они не придумали ничего лучше CMake + местный пакетный менеджер
источник

с

сонная википедия... in Go-go!
salvoroni
и при компиляции флаг -L./lib и готово
против go modules, который сам все скачает, сам все найдет
источник

s

salvoroni in Go-go!
странная причина не любить язык +-низкого уровня за такое
больше нужна стабильность на них а новые версии могут что-то сломать
источник

S

Sergey in Go-go!
salvoroni
ну обычно создается дирректория lib и там просто все хранится
ну вот именно, что "обычно" и на условных договорённостях всё. в го всё чётко и без двоякого толкования
источник

с

сонная википедия... in Go-go!
salvoroni
странная причина не любить язык +-низкого уровня за такое
больше нужна стабильность на них а новые версии могут что-то сломать
в новых версиях как раз обычно все уже пофикшено
источник

S

Sergey in Go-go!
salvoroni
странная причина не любить язык +-низкого уровня за такое
больше нужна стабильность на них а новые версии могут что-то сломать
странно писать что-то вообще, боясь, что что-то сломается. лучше ничего не трогать вообще, мало ли.
источник

с

сонная википедия... in Go-go!
разработка как-то не в ту сторону воюет
источник