Я довольно новичок в работе и даже в Linux в целом.
Я создал приложение в среде Linux, в котором используется библиотека gtk на основе cgo (https://github.com/mattn/go-gtk/). Приложение отлично строится в своей родной среде (64-разрядная версия Linux), но когда я пытаюсь скомпилировать для 64-разрядной версии darwin, я получаю следующий результат:
# net
could not determine kind of name for C.AI_MASK
# net
could not determine kind of name for C.AI_MASK
Командная строка, которую я использую для сборки:
env GOOS=$1 GOARCH=$2 CGO_ENABLED=1 go build $3
Где $1 — darwin, $2 — amd64 (и $3 — путь к моему приложению).
Поскольку ошибка, похоже, исходит из библиотеки, которую я импортирую, я не знаю, что делать, чтобы ее исправить. Я также читал, что кросс-компиляция cgo на самом деле не работает, поскольку она основана на нативных материалах macos, поэтому ее нужно будет собирать на Mac. Это правда или я могу что-то сделать, чтобы заставить его работать в моей среде?
Я также немного смущен, так как кажется, что большинство людей, обсуждающих эту тему, говорят о версии go pre 1.5, которая, если я правильно понимаю, была совершенно другой, когда дело доходит до кросс-компиляции.
Спасибо
/usr/local/go/pkg/tool/linux_amd64/link: running o64-clang failed: exit status 1 ld: library not found for -lgobject-2.0 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Не знаю, что это значит... :/ - person Nicolas   schedule 24.12.2015# github.com/mattn/go-gtk/pango ld: library not found for -lpango-1.0 clang: error: linker command failed with exit code 1 (use -v to see invocation)
и# github.com/mattn/go-gtk/glib ld: library not found for -lgobject-2.0 clang: error: linker command failed with exit code 1 (use -v to see invocation)
; что это обозначает? - person Nicolas   schedule 24.12.2015