Я использую фреймворк Revel для создания веб-приложения. Я кросс-компилирую его для ARM с помощью команды GOOS=linux GOARCH=arm revel package mitm
Это отлично работает, однако я только что включил библиотеку github.com/google/gopacket
и теперь кросс-компилированная сборка дает сбой (она отлично работает на OSX, на которой я разрабатываю).
Я получил:
ОШИБКА 27.07.2015, 09:01:30 build.go:101: # mitm/app/controllers go/src/webserver/app/controllers/ArpScan.go:88: undefined: pcap.OpenLive go/src/webserver/ app/controllers/ArpScan.go:88: undefined: pcap.BlockForever go/src/webserver/app/controllers/ArpScan.go:114: undefined: pcap.Handle go/src/webserver/app/controllers/ArpScan.go: 145: не определено: pcap.Handle
pcap — это библиотека, импортированная из gopacket:
import "github.com/google/gopacket/pcap
"
Мой вопрос в том, как мне заставить его кросс-компилировать эту библиотеку?
Я запустил go-crosscompile-build-all
Дейва Чейни (ссылка), но это просто создает стандартную библиотеку.
bash all.bash
, и это казалось успешным. Когда я запускаюC=arm-linux-gnueabihf-gcc GOOS=linux GOARCH=arm revel package mitm
, я получаю сообщение об ошибке: go build runtime: linux/arm должен быть загружен с помощью make.bash. Затем я запускаюGOOS=linux GOARCH=arm ./make.bash --no-clean
, что успешно, однако это не позволяет успешно собрать revel - person amlwwalker   schedule 27.07.2015