При попытке скомпилировать проект (go build hw), вылезает ошибка: can't load package: package hw: found packages main (hw.go) and mix (mix.go) in D:\src\hw
P.S. GOPATH прописан. Отдельные файлы собираются и запускаются.
Получается в Go, значение GOPATH сугубо для одного набора исходников?
Вы какую версию Go используете? В go1.1.1 все разжевали и запретили выставлять GOPATH==GOROOT.
GOPATH это места, в котором Go ищет пакеты.
Про системы пакетов вообще рекомендую почитать go get gopath
Ок… Понял о чем вы говорите. И про структуру (go help gopath) тоже читал.
Я просто пытался сформулировать мысль: — "а как же правильно размещаются исходники для определенного приложения в Go"?
Ведь в GOPATH лежат пакеты. Скажем так, библиотеки. Обычно сторонние.
Не может же большое приложение быть из одного GO файла и включениями таких вот пакетов. Наверняка код приложения можно как-то разбить на несколько, логически связанных кусков.
(Это так не похоже на Си или Питон, что ставит в тупик. А интернеты тупо перепечатывают друг друга, еще больше запутывая вопрос.)
Есть специфические для приложения пакеты — их можно положить рядом. Есть пакеты SDK они лежат в GOROOT, есть чужие пакеты или пакеты общего назначения они ложатся в GOPATH.
Я для себя избрал такой способ организации.
GOPATH у меня что-то вроде /var/go/packages/