2014-06-18 6 views
5

Witam, jestem całkiem nowy w Golang, piszę aplikację kliencką i aplikację dla klientów, aby nauczyć się bibliotek.Przejdź do projektu z 2 plikami wykonywalnymi

Ale mam folder projektu:

[email protected] {~/workspace/gospace/src/github.com/redbrain/station} $ echo $GOPATH 
/Users/philipherron/workspace/gospace 

chciałem mieć 2 pliki binarne:

  • client.go
  • server.go

Ale kiedy budować Otrzymuję:

[email protected] {~/workspace/gospace/src/github.com/redbrain/station} $ go build github.com/redbrain/station/ 
# github.com/redbrain/station 
./server.go:5: main redeclared in this block 
    previous declaration at ./client.go:5 

Chyba dlatego, że wygląda na to, że robię sieć w tej samej paczce.

Spróbowałem więc stworzenie klienta i podkatalog serwera i mieć pliki binarne w każdym z nich, ale pojawia się:

[email protected] {~/workspace/gospace/src/github.com/redbrain/station} $ go build github.com/redbrain/station/client 
go install github.com/redbrain/station/client: build output "client" already exists and is a directory 

to chyba dlatego, że mam układ:

$ tree 
. 
├── client 
│   └── client.go 
└── server 
    └── server.go 

2 directories, 4 files 

Nie wiem, jak sobie z tym poradzić, byłoby miło mieć tego samego klienta i serwer w tym samym katalogu, ale może to jest sprzeczne z tym, jak powinienem robić rzeczy w podróży?

+0

Polecenie go build próbuje utworzyć plik wykonywalny w bieżącym katalogu. Spróbuj wykonać go z katalogu, w którym nie istnieje żaden plik lub katalog o nazwie klient. – fuz

+0

Dzięki, tak, nie zauważyłem, że dzięki! – redbrain

Odpowiedz

7

wystarczy zmienić nazwy plików .go. Kompilator próbuje napisać do "klienta", ale "klient" jest już zajęty przez katalog.

$ tree 
. 
├── client 
│ └── main.go 
└── server 
    └── main.go 

2 directories, 4 files 

i/lub utworzyć skrypt, który wyprowadza ich z inną nazwą go build -o client client/main.go

+0

Dzięki widzę teraz czuję się tak głupio, że nie zauważyłem, że dzięki. – redbrain

0

wraz zz oddzielnych opakowaniach jak wyżej, jeśli ustawisz Gobin = $ GOPATH/bin następnie stworzy klienta i serwera w katalogu bin i nie będzie kolidować z nazwami katalogów

Powiązane problemy