Я пытаюсь установить gccgo
для тестирования Protocol Buffers 3 с Golang ... Я должен признаться, что вернулся к dev после 8 лет отдыха (и я не являюсь носителем языка), поэтому Спасибо за вашу снисходительность. Спасибо:)
Итак, после нескольких чтений я решил начать с README этого репо: https://github.com/golang/protobuf
1-й пункт пули: проверено!
Последняя версия буфера протокола установлена на моей Ма c (protobuf-cpp-3.11.4.tar.gz
, насколько я понимаю) https://github.com/protocolbuffers/protobuf/releases/tag/v3.11.4
$ ls $GOBIN
dlv* gocode* godef* gopkgs* protoc-gen-go*
go-outline* gocode-gomod* golint* goreturns*
2-й пункт маркированного списка: Здесь я провел пару часов ... безуспешно: /
Конечно, установите компилятор Go и инструменты из https://golang.org/ См. https://golang.org/doc/install для получения подробной информации или, если вы используете g ccgo, следуйте инструкциям на https://golang.org/doc/install/gccgo
Насколько я понимаю, мне нужно установить gccgo
, который является веткой компилятора g cc. Затем я прочитал, что gccgo
на самом деле является собственной сборкой компилятора g cc, настроенной с опцией --enable-languages=c,c++,go
(sr c https://golang.org/doc/install/gccgo) ... так почему есть ли специальная ветка на репо и где она находится? (https://gcc.gnu.org/git.html) I
Я просто сдамся, чтобы попытаться загрузить ветку g ccgo из репозитория git и найти репозиторий SVN:
$ svn checkout svn://gcc.gnu.org/svn/gcc/branches/gccgo gccgo`
gccgo$ ./configure --enable-languages=c,c++,go
...
configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations. Source code for these libraries can be found at
their respective hosting sites as well as at
<https://gcc.gnu.org/pub/gcc/infrastructure/>. See also
<http://gcc.gnu.org/install/prerequisites.html> for additional info. If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files. They may be located in separate packages.
Итак, я скачал gmp-6.2.0.tar.lz
с https://gmplib.org/, что приводит меня к установке lzip
перед распаковкой архива
$ brew install lzip
$ lunzip gmp-6.2.0.tar.lz
$ tar - xvzf gmp-6.2.0.tar
$ cd gmp-6.2.0
gmp-6.2.0$ ./configure
gmp-6.2.0$ make
gmp-6.2.0$ make install
gmp-6.2.0$ make check ( a few warnings but every test have been passed successfully )
Затем установил mpfr-3.1 .6.tar.gz
$ tar -xvzf mpfr-3.1.6.tar.gz
$ cd mpfr-3.1.6
mpfr-3.1.6$ ./configure
mpfr-3.1.6$ ./make
mpfr-3.1.6$ ./make install
... и попробуйте снова
gccgo$ ./configure --enable-languages=c,c++,go
...
The following requested languages could not be built: go
Supported languages are: c,brig,c,c++,d,fortran,lto,objc,obj-c++
Наконец
Я не уверен насчет каталога, в котором они говорят последний шаг ...
Создайте Go примеров в этом каталоге с помощью "make go". Это создает следующие исполняемые файлы в текущем каталоге: add_person_ go list_people_ go
make
работает с gcc
, представляя отдельный файл "правил", который описывает, как go из исходного кода в готовую программу, интерпретирует этот файл, выясняет, что нужно скомпилировать, и вызывает gcc
. (источник { ссылка }). Итак, если g cc не скомпилирован должным образом, он не сможет работать.
protocolbuffer$ ls
add_person.go add_person_test.go addressbook.proto list_people_test.go
add_person.go.txt addressbook.pb.go list_people.go
protocolbuffer$ make go
make: *** No rule to make target `go'. Stop.
Extra tech. информация при необходимости:
~$ echo $GOPATH
/Users/me/Dev/Go/golib:/Users/me/Dev/Go/code
$GOBIN is /Users/me/Dev/Go/golib/bin
$ echo $GOBIN
/Users/me/Dev/Go/golib/bin