WebRTC Gebäude für arm
Ich bauen will webrtc für meine kleine Maschine mit arm926ej-s-Prozessor.
Nachdem ich installieren depot_tools, ich habe folgenden Schritte aus:
gclient config http://webrtc.googlecode.com/svn/trunk
gclient sync --force
cd trunk
ninja -C out/Debug
Alle arbeiten in Ordnung und ich kann einige binäre Dateien, die ich bekomme nach dem kompilieren.
Nun, ich kompilieren möchten, für meinen arm-Maschine. Ich tun Sie Folgendes:
rm -rf out
export GYP_CROSSCOMPILE=1
export GYP_DEFINES="target_arch=arm arm_float_abi=hard"
export CC=/path/to/my/gcc
export CXX=/path/to/my/g++
export AR=/path/to/my/ar
export CC_host=gcc
export CXX_host=g++
gclient runhooks --force
Immer noch alles reibungslos...
Aber wenn ich versuche zu kompilieren mit dem Befehl:
ninja -C out/Debug
Ich habe viele Fehler, wie:
CC obj/chromium/src/third_par...p/srtp/crypto/cipher/libsrtp.aes_cbc.o
FAILED: /opt/virt2real-sdk/codesourcery/arm-2013.05/bin/arm-none-linux-gnueabi-gcc -MMD -MF obj/chromium/src/third_party/libsrtp/srtp/crypto/cipher/libsrtp.aes_cbc.o.d -DHAVE_STDLIB_H -DHAVE_STRING_H -DV8_DEPRECATION_WARNINGS -D_FILE_OFFSET_BITS=64 -DHAVE_INT16_T -DHAVE_INT32_T -DHAVE_INT8_T -DHAVE_UINT16_T -DHAVE_UINT32_T -DHAVE_UINT64_T -DHAVE_UINT8_T -DHAVE_STDINT_H -DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H -DINLINE=inline -DCPU_CISC -DCHROMIUM_BUILD -DCR_CLANG_REVISION=214024 -DTOOLKIT_VIEWS=1 -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_GLIB=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DUSE_XI2_MT=2 -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DUSE_UDEV -DENABLE_EGLIMAGE=1 -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DCLD2_DATA_SOURCE=static -DENABLE_FULL_PRINTING=1 -DENABLE_PRINTING=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_MANAGED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DUSE_NSS=1 -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -D_DEBUG -D_GLIBCXX_DEBUG=1 -I../../chromium/src/third_party/libsrtp/config -I../../chromium/src/third_party/libsrtp/srtp/include -I../../chromium/src/third_party/libsrtp/srtp/crypto/include -Igen -fstack-protector --param=ssp-buffer-size=4 -Werror -pthread -fno-exceptions -fno-strict-aliasing -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-reserved-user-defined-literal -Xclang -load -Xclang /home/footniko/my/webrtcnative/trunk/tools/clang/scripts/../../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -fcolor-diagnostics -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-format -Wno-unused-result -target arm-linux-gnueabihf -march=armv7-a -no-integrated-as -mtune=generic-armv7-a -mfpu=neon -mfloat-abi=hard -mthumb --sysroot=/home/footniko/my/webrtcnative/trunk/arm-sysroot -O0 -g -funwind-tables -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -c ../../chromium/src/third_party/libsrtp/srtp/crypto/cipher/aes_cbc.c -o obj/chromium/src/third_party/libsrtp/srtp/crypto/cipher/libsrtp.aes_cbc.o
arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-Xclang'
arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-Xclang'
arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-Xclang'
arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-add-plugin'
arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-Xclang'
arm-none-linux-gnueabi-gcc: error: find-bad-constructs: No such file or directory
arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-fcolor-diagnostics'
arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-Wheader-hygiene'
arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-Wstring-conversion'
arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-target'
arm-none-linux-gnueabi-gcc: error: arm-linux-gnueabihf: No such file or directory
arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-no-integrated-as'
- müssen GYP_DEFINES="OS=android" ?
- Ich bin nicht für android.
- Ich dachte so, aber ich denke, OS=android, bedeutet, dass dieses cross-compiling und der Ausrichtung auf mobile Prozessoren.
- Nein, es stürzt ab, wenn ich aus
gclient runhooks --force
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich habe auch dieses problem, aber es war wegen der Exporte bezogen auf compiler-Entscheidungen (CC, CXX, etc.). In der Tat, das macht Sie schwach, denn -Xclang wird nicht erkannt von gcc.
Hier ist eine Methode, die ich verwendet, um zu versuchen zu kompilieren. Es scheint jedoch, dass webrtc Stamm bewegt sich schnell, und es ist nicht mehr die Arbeit der letzten Tage. Die größte änderung, die im Zusammenhang mit Ihrem problem und der Vorschlag von 9dan : Sie brauchen, um zu sagen, dass Sie wollen target android (und linux) und für diese müssen Sie android_tools. Aber jetzt, es ist keine Abholung von webrtc, sollten Sie sich die eine aus Chrom.
Hier ist eine Zusammenfassung der Installation.
Systemanforderungen:
Lieber eine virtualisierte Lubuntu14.04 64-bit auf mindestens 30 GB virtuellen Festplattenspeicher und 8GbRAM :
Dann von diesem Rechner aus ist, ist hier die Installation:
basic-Vorrüstung... angenommen, dass keine Variablen diskutiert, später wurden bereits exportiert
Installieren Sie zuerst die essentiellen Pakete werden in der Lage, Daten abrufen und spielen mit java :
erste Webrtc Holen
Erstellen Sie ein Verzeichnis zu Holen und zu gehen
0 Hinweis: irgendwann schlägt es sagen, gcc, pkg-config, etc wurden nicht gefunden. Oft geschieht das auf einer frischen Installation wo viele Pakete fehlen.
Glücklicherweise ein script sollte bereits heruntergeladen wurden :
Ausführen, um zu installieren alle benötigten Pakete und erneut
fügen Sie alle notwendigen android sdk&ndk, die erforderlich sind, um die target-arm-Systeme
Hinweis 1: die android-tools sind nicht mehr direkt verfügbar mit webrtc. Es wird empfohlen, die eine aus Chrom.
dann, in Webrtc-Ordner oder ein anderes (beispielsweise der ursprüngliche Standort : trunk/third_party/).
Einmal android_tools abgerufen werden, konfigurieren Projekt, um es zu sehen. Edit :
und fügen Sie die gewünschte variable android_ndk_root durch hinzufügen der folgenden Zeile in der "Variablen" Abschnitt am Anfang der Datei:
können Sie auch exportieren ANDROID_NDK_ROOT in Ihr .bashrc
vorbereiten cross-kompilieren für armv7a-basierte Plattform
/* => nach anderen experiment, ich habe die oben genannten Befehl, aber ich denke, es ist nicht absolut notwendig, eine sehr saubere Installation. Anycase, wenn es getan wird, den Befehl "./build/install-build-deps.sh --arm" sollte verwendet werden, nachdem im Hinblick auf den Austausch einige cross-compiler-Pakete
(hauptsächlich um g++-arm-linux-gnueabihf-und gcc-arm-linux-gnueabihf installiert)
*/
Hier ist das Ziel, linux arm so das sollte genug sein, aber wenn welche auf android, kann es notwendig werden, definieren die folgenden Variablen
HINWEIS 2 : die folgenden Exporte sind oft berichtet Anleitungen und tutorials. Allerdings, wenn Sie bringen mehrere Probleme (unbekannter-Xclang flag, etc.). Es scheint, dass Sie nicht mehr sinnvoll, da gyp-Dateien automatisch anpassen, diese Einstellung ! Für mich, Sie zu vermeiden, war der einzige Weg der Konfiguration und Beginn der Zusammenstellung der Arbeit.
Schließlich, konfigurieren Sie das system, bevor Sie zu dem endgültigen kompilieren Schritt
Mögliche Fehler 1 , Gelöst
Wird die folgende Fehlermeldung angezeigt zuerst :
=> gyp: Undefined variable android_ndk_root in Chrom/src/third_party/openmax_dl/dl/dl.gyp
=> kommen Sie zurück zum vorherigen Abschnitt, werden Sie sicherlich vergessen zu definieren android_ndk_root variable in der beleuchtet Datei:
'android_ndk_root':'/trunk/third_party/android_tools/ndk/',
*/
Potenzielle Fehler 2, gelöst
einen relativen link-problem erscheint, wenn Sie versuchen, um Ziel-trunk/build/linux/pkg-config-wrapper, erhalten Sie etwas ähnliches wie das hier :
Aktualisierung Projekte von gyp-Dateien...
/bin/sh: ../../../build/linux/pkg-config-wrapper: Keine solche Datei oder Verzeichnis
gyp: Aufruf von " ../../../build/linux/pkg-config-wrapper "/media/workspace/lib/webrtc/Rumpf/arm-sysroot" "arm" --libs-nur-L --libs-nur-anderen-nss' zurückgegebene exit-status 127. beim laden von Abhängigkeiten trunk/alle.gyp beim laden trunk/alle.gyp
Fehler: Befehl /usr/bin/python-trunk/build/gyp_chromium --depth=trunk trunk/alle.gyp -Dextra_gyp_flag=0 zurückgegeben non-zero exit status 1 in /media/workspace/lib/webrtc
=> wenn Sie möchten, um dieses problem zu lösen für alle Dateien mit diesem Fehler suchen falschen Dateien mit :
und ersetzen zugehörigen relativen Pfad-Teil in der pkg-config-line (am Anfang von jeder der gefundenen Dateien :
'pkg-config': 'trunk/build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)"',
gclient runhooks --force
final compile-Schritt
eine Idee : sudo apt-get install gcc-arm-linux-androideabi
sollten Sie Ziel third_party/android_tools/ndk/platforms/android-XXX/arch-arm/usr/include/sys/
//falls du Probleme mit Rauschen, kann es sein, desactivated, mit dieser zusätzlichen option (erneut gclien runhooks nach)