Ich habe versucht, CGO Code auf Linux/Arm auf meinem darwin/amd64 MBP mit Go 1.3, aber am Ende ohne Glück :(Troubles mit CGO Kreuzkompilierung aktiviert auf Mac OS gehen 1.3 mit X
Meine Umgebung zu überqueren kompilieren :
go version go1.3 darwin/amd64
Mein Ziel:
Kreuz CGO Code kompiliert linux/Arm-Targeting
Schritt 1:.
Erstellen gcc/g ++ Cross-Compiler mit CT-ng. Es war ein langer Weg zu bauen arm-unknown-linux-gnueabi-g++
und arm-unknown-linux-gnueabi-gcc
, aber ich habe es endlich geschafft. Ich habe mit einfachen C/C++ Programmen getestet und die Ausgänge funktionierten auf meiner Linux/Arm R-Pi Box.
Schritt 2:
cd/path/to/go/src
sudo CGO_ENABLED = 1 CC_FOR_TARGET =/path/to/Arm-unknown-linux-gnueabi-gcc CXX_FOR_TARGET =/path/to/arm-unbekannt-linux-gnueabi-g ++ GOOS = Linux GOARCH = Arm ./make.bash
Alles gebaut OK.
Schritt 3:
Kompilieren des folgenden einfachen CGO Code:
package main
/*
#include <stdio.h>
#include <stdlib.h>
*/
import "C"
import (
"unsafe"
)
func main() {
str := C.CString("abc\n")
C.printf(str)
C.free(unsafe.Pointer(str))
}
Für meine Host-Maschine:
go install package/of/test
fehlgeschlagen mit
arm-unknown-linux-gnueabi-gcc: error: unrecognized command line option '-m64'
für Linux/Arm:
GOOS=linux GOARCH=arm go install package/of/test
Fehlgeschlagen mit
runtime.main: Aufruf einer externen Funktion main.main runtime.main:
undefined:
main.main
Irgendeine Idee? Vielen Dank.
Dies könnte http://stackoverflow.com/questions/16188228/arm-compiler-with-autoconf helfen –