ich möchte hier mal einen neuen Thread eröffnen, der ein komplexes und schwieriges Thema anschneidet. Ich suche Hilfe und Tipps beim Aufbau einer funktionsfähigen "Toolchain" (kann man das so sagen?), um eine bestimmte Anwendung (linphone) für den raspberry Pi 4 unter Buster neu zu bauen. linphone ist freie Software und funktioniert super! Man kann damit eigene SIP-Telefone aufbauen inklusive Anruferliste, Videotelefonie und Konferenzschaltungen. Leider ist der Desktop-Client nicht so super...
Ich habe zwar einge Erfahrungen in der Softwareentwicklung (Pascal, PHP, Ruby, ASM utc.), aber nicht mit C++ und Linux (sondern nur mit C++ auf der ESP-Familie), so dass ich hiermit ein unbekanntes Land betrete.
Als Entwicklermaschine verwende ich ein Windows 8.1 Prof x64-System mit 16 Kernen unter Visual Studio 2019 Community (im Weiteren nur noch VC19C genannt). Es ist mir nun schon gelungen, zwei exemplarische Anwendungen (eine Linux-Konsolenanwendung und ein CMake-Projekt) für den Raspi 4 unter VC19C zu bauen. Beide laufen nach der Compilation des Codes unter WIndows x64 auf dem Raspi 4.
Allerdings ist das Crosscompiling viel Komplizierter als gedacht und ich benötige (neben dem Selbststudium) auch Tipps und Hilfe von erfahrenen C++Entwicklern.
Ist da jmd. bereit, mitzumachen?
Vielleicht bringt dieses Topic auch ein Zugewinn für zukunftsweisende Entwicklungsbemühungen um den Raspi?
Wobei benötige ich jetzt grundlegende Hilfe?
Meine Zielsetzung ist es, die prima für den raspi zugeschnittene Application linphone zu bauen und den Desktop-Client, eine Qt-Anwendung, (kann man das bei Linux so nennen?) zu überarbeiten!
Dazu habe ich mit meinem jetzigen Kenntnisstand einige Annahmen gemacht, die ich den Experten nachfolgend erst einmal zur Diskussion stellen möchte (sind nämlich diese Annahmen falsch, dann muss ich mein Vorgehen neu überdenken):
- Meine Annahme: das Projekt lässt sich prinzipiell crosskompilieren, warum?: der Anbieter des Repositories macht das scheinbar auch so, siehe Readme.md im Repository und für einen Build auschecken https://gitlab.linphone.org/BC/public/linphone-sdk. Das checkout hat bei mir funktioniert,
- Es handelt sich um ein CMake-Projekt, dass jedoch nicht mit VS19C, sondern mit VS.15.2017 erstellt wurde. Meine Annahme: ist, dass das prinzipiell auch mit VS19C gehen muss. Wenn nein, bitte Einwände anbringen und begründen.
- Die prerquisites alias Build dependencies scheinen mir mit meinem Erfahrungsstand etwas schräg. Wozu benötigt man in einer Compilersprache wie C++ noch nasm, yasm, python pystache und python six sowie. Diese tools sind teilweise veraltet und werden gar nicht mehr gepflegt. Meine Annahme:: Das geht möglw. mit VC19C eleganter??
- Ich habe die Build dependencies wie vorgeschrieben auf meiner Entwicklermascine installiert, aber danach bemerkt, dass dass bei VC19C (zumindest weitgehend) gar nicht mehr nötig ist. VC19C unterstützt beispielsweise sogenannte Virtuelle Python-Umgebungen, so dass man für jedes CMake-Projekt eine eigene isolierte Python-Umgebung konfigurieren kann. Das hat auch geklappt und CMake liest die Quellen korrekt ein. Meine Annahme: auch die Abhängigkeiten von anderen Tools wie yasm, nasm und Mustache lässt sich möglw. besser handhaben?
Ich freue mich auf Antworten.
Viele Grüße vom
Theo
EDIT: Ich habe gerade noch das hier gefunden. Vielleicht sagt das mline was? Ich muss es erst einmal durcharbeiten.