2017-08-23 3 views
0

Ich versuche, ein Go-Programm auf meinem Linux-Desktop zu kompilieren (Linux-Desktop 4.10.0-28-generische # 32-Ubuntu SMP Fr. 30 Juni 05:32:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux), gehen Version go version go1.8.3 linux/amd64 zu bewaffnen:Cross-kompilieren zu ARMv7 fehlgeschlagen

$ GOPATH=/home/xrfang/git/hermes/ GOARM=7 GOARCH=arm go build . 

die ausführbare Datei erzeugt wird, scheint aber nicht ARMv7:

$ file hermes 

hermes: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped 

Es zeigt EABI5. Wie kann ich ARMv7 kompilieren? Fehlt etwas auf meinem Linux-Desktop, so dass das Cross-Compile auf eine niedrigere ARM-Version zurückfällt?

Danke.

+0

Wie können Sie sagen, es ist nicht für V7 von EABI5 kompiliert? – RaviTezu

+0

@RaviTezu, es tut mir leid, ich dachte EABI5 ARMv5 ?? Wenn nicht, wie kann ich es sagen? Der Grund, warum ich nachforsche, ist, dass ich mit GOARM = 7 keine Leistungsverbesserung erreicht habe. Mein Programm läuft auf einem Android-Rechner, ruft screencap auf, um einen Screenshot im RGBA8888-Rohformat zu machen, und komprimiert es dann in JPEG. Kann ich eine Leistungssteigerung durch Verwendung von ARMv7 erwarten, insbesondere für den JPEG-Codierungsteil? – xrfang

Antwort

0

Ich glaube, es ist nicht ARMv5. Ich habe versucht, dasselbe unter MAC OS zu tun, und der Befehl 'datei' auf dem Mac sagt v7, aber der Befehl 'datei' unter Linux nicht. Ich weiß jedoch, dass v7 einige gute Verbesserungen hat und die Leistung Ihres Programms steigern kann.

Aber das ist außerhalb des Umfangs dieser Frage und Sie müssen möglicherweise tiefer in das, was Sie tun, und warum eine Leistungsverbesserung in erwartet werden. Alles, was ich sagen kann ist, es ist für v7 kompiliert.

Verwandte Themen