среда, 10 апреля 2019 г.

Linux Go компиляция для Mac OS

Сначала скачал с зависимостями

go get -v github.com/project/...

Далее буду использовать make

cd $GOPATH/src/github.com/project
make install

или make install cmd/project
если нужен конкретный бинарник

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

brew install gcc

И запускаю:

CC=gcc-8 CXX=g++-8 make install

Количество ошибок уменьшилось. Чтобы справится с остальными, разработчики попросили файлы _x002.o _x012.o , которые создавались в процессе компиляции:

duplicate symbol _extra_hashes in:
$WORK/b142/_x002.o
$WORK/b142/_x012.o
ld: 2 duplicate symbols for architecture x86_64

Сначала я нашел в Makefile строку запуска go buld

CGO_CFLAGS_ALLOW='-maes.*' go build -ldflags "-X main.Version=project-version" -o bin/project-bin -tags="netgo" ./cmd/project

и добавил параметр -x , который показал информацию о создаваемых файлах в процессе компиляции с полным путем.

CC=gcc-8 CXX=g++-8 CGO_CFLAGS_ALLOW='-maes.*' go build -x -ldflags "-X main.Version=project-version" -o bin/project-bin -tags="netgo" ./cmd/project

Комментариев нет:

Отправить комментарий