Cross Compiling zu Raspberry Pi von Windows mit externen Bibliotheken

7

Nach diesem Handbuch, http://www.a2p.it/wordpress/tech-stuff/development/remote-debugging-raspberrypi/ , konnte ich die Kompilierung von Windows auf Raspberry Pi übertragen. Ist es jedoch möglich, eine Kompilierung mit externen Bibliotheken wie PCL und OpenCV durchzuführen? Kann ich ein Projekt einfach mit dem Cmake-Tool mithilfe der Cross-Toolchain erstellen?

Xegara
quelle
3
Sie müssen zuerst die Bibliotheken überkompilieren.
Goldlöckchen
Lädt sudo apt-get <library-package> herunter und installiert vorgefertigte Binärdateien?
Xegara

Antworten:

2

Wenn was auch immer Sie Links kompilieren, zB libfoobar, dann muss libfoobar sein:

  • Im Bibliothekspfad beim Kompilieren. Der einfachste Weg , dies zu tun , ist eine grundlegende Hierarchie einzurichten ( bin, lib, include) und installieren Sie sie dort. Ich werde dies als "Staging" -Verzeichnis bezeichnen.

  • Für den pi kompilierte Versionen . Dies können sogar Versionen aus dem Pi sein , obwohl das Herausarbeiten der Verknüpfung hier viel schwieriger sein kann, als es sich lohnt, und Sie möglicherweise leicht Ihren Kopf gegen eine Wand schlagen. Am besten holen Sie sich die Bibliotheksquellen, kompilieren sie übergreifend und installieren sie im Staging-Verzeichnis.

WRT das Staging - Verzeichnis, können Sie die Cross-Compiler sysroot Verzeichnis (die alle die grundlegenden libs enthält, zB glibc), aber es ist wahrscheinlich eine bessere Idee , eine speziell für diesen Zweck zu machen , und fügen Sie -L/wherever/zu LDFLAGS. Ich habe das x-Tool aus Ihrem Link nicht verwendet, aber ich gehe davon aus, dass es Crosstool-ng verwendet . Wenn Sie sich die Crosstool-ng-Dokumente ansehen, 5 - Using the toolchain.txtfinden Sie hierzu ausführliche Hinweise. Für dieses vorgefertigte x-Tool ist möglicherweise bereits etwas in dieser Richtung konfiguriert.

Wenn Ihre Bibliotheksanforderungen recht einfach sind, ist das Erstellen aus der Quelle kein großer Aufwand. Sie können jedoch versuchen, das Stammverzeichnis des Pi als NFS-Freigabe (oder Samba? Ich weiß nicht viel über Windows) bereitzustellen und dieses als Staging-Verzeichnis zu verwenden. Dann müssen Sie nur noch die '-dev'-Pakete mit installieren apt-get.

Goldlöckchen
quelle
In Bezug auf den letzten Teil Ihrer Antwort möchte ich nur mein Verständnis bestätigen. Meinen Sie damit, dass ich mein Projekt mit dem Stammverzeichnis des pi (wo die installierten <lib-Pakete> installiert sind) verknüpfe und jetzt kompilieren kann?
Xegara
Ja. Dann würden Sie so etwas kompilieren -L/mnt/lib -L/mnt/usr/lib -I/mnt/include -I/mnt/usr/include.
Goldlöckchen