Могу ли я иметь библиотеку и двоичный файл с тем же именем?
Я собираю библиотеку, но я также хочу, чтобы она использовалась как отдельный двоичный файл.
Например, пустьскажи ям построение реализации Тар. Tar обычно используется в качестве команды, но также может использоваться как библиотека. Интуитивно ясделать что-то вроде этого:
src/
tar/
tar.go # belongs to package tar
main.go # imports tar and provides a main function
Это некажется, работает, хотя. Отдокументация, Кажется, что "команды» должно иметь отдельное имя из библиотеки. Адаптируя приведенный там пример к этому примеру, я имею следующую структуру каталогов:
src/
tar/
tar.go # belongs to package tar
tarbin/
main.go # imports tar and provides a main function
Тем не менее, это создает команду под названиемtarbin
неtar
в$GOPATH/bin
, Обходной путь I 'мы нашли, чтобы сделатьgo build -o $GOPATH/bin/tar tar
, но я чувствую, что яЯ делаю что-то ужасно неправильно. Есть ли способ лучше?
Примечание: яя хорошо знаю, чтоtar
входит в стандартные библиотеки, ям только используя его в качестве примера.