2015-02-19 3 views
1

Я новичок в golang, и я пытаюсь написать программу, используя this tutorial.6g: команда не найдена ошибка при компиляции внешнего кода апи в Go

Однако я получаю эту ошибку, брошенную во время компиляции.

6g: command not found 

Вот что я пробовал:

$ go version 
go version go1.4.1 darwin/amd64 
  • Я установить переменные окружения правильно

Вот как моя .bashrc выглядит следующим образом:

$ tail ~/.bashrc 

export GOBIN=/Users/abhijeet/code/golang/go/bin 
export GOROOT=/Users/abhijeet/code/golang/go 
export GOPATH=/Users/abhijeet/code/golang/gopath 
export GOOS="darwin" 
export GOARCH="amd64" 
export PATH="$GOBIN:$PATH" 
  • Я добавил ниже строки в/и т.д./профиль на источник его

Вот как это выглядит:

[ -r $HOME/.bashrc ] && source $HOME/.bashrc 
  • Если я выйти из терминала, запустите его снова и эхо любой из переменных, они работают.

  • У меня установлен gcc.

Вот что я получаю, когда я бегу команду «НКУ --version»:

$ gcc --version 

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1 
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn) 
Target: x86_64-apple-darwin14.1.0 
Thread model: posix 
  • Если я пишу любую другую программу, идут и запустить его, он работает. Например, все программы из разделов с 1 по 5 от here и до тех пор, пока «Шаблоны Go Go - Part 3 - Template Sets» не будут работать даже сейчас. Только этот конкретный учебник беспокоит меня.

  • Ни одна из других программ, которые я только что дал, потребовала от меня запустить команду «6g». Но они все еще работают на моей машине.

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

Что они просили бежать:

6g -I $GOPATH/pkg/linux_amd64 urlshortener.go 

Что я бегу:

6g -I $GOPATH/pkg/darwin_amd64 urlshortener.go 
  • Важно: Я выполнил все действия, описанные в руководстве для использования внешнего apis. Однако, если я заглядываю в папку darwin_amd64, я вообще не вижу никакого файла urlshortener.go!

Все, что я могу найти

darwin_amd64 
├───code.google.com 
│ ├───p 
│ │ └───google-api-go-client 
│ │  └───googleapi 
│ │  │ └─── <more folders and files here> 
│ │  └───urlshortener 
│ │  │ └───v1.a 
│ │  └───googleapi.a 
│ │ 

Так что я знаю, что есть какая-то проблема, но я также знаю, что это, вероятно, не то, что вызывает ошибку я вижу, в противном случае я бы видел ошибку, как «файл не найден». Я просто хотел упомянуть об этом как дополнительные данные.

Так что я ценю любую помощь по этому вопросу. Пожалуйста, дайте мне знать, если я должен предоставить дополнительные данные.

+1

Важно: Никогда не устанавливайте или экспорт GOROOT, она не должна использоваться для нормального использования инструмента идут. – Volker

+0

Спасибо @Volker! Но можете ли вы также немного объяснить причину этого? – Abhijeet

+0

GOROOT скомпилирован в инструмент go. Установка GOROOT - это культ груза с первых дней, если Go. – Volker

ответ

2

Это внутренняя команда, вы можете запустить ее с помощью go tool 6g.

Это, как говорится, это руководство крайне устарело и больше не имеет отношения к делу.

  • Для компиляции я использовал: 6g -I $ GOPATH/упак/linux_amd64 urlshortener.go
  • Для связи я использовал: 6л -L $ GOPATH/упак/linux_amd64 urlshortener.6

заменяется просто работает go build urlshortner.go или даже go run urlshortner.go

Несколько ресурсов, чтобы проверить:

+1

Спасибо! Я думал, что учебник дал мне правильный поток при обучении Go. Я буду следить за другими ресурсами, которые вы предоставили. (P.S.: Я не могу голосовать за ваш ответ, потому что я все еще новичок и не имею достаточных очков репутации.) – Abhijeet