winlicli
Goto Top

Kann der Code einfach für jede CPU-Architektur kompiliert werden?

Hallo zusammen,

ich habe einen PI mit der CPU ARMv7.
Nun gibt es viele Programme die ich auf einem 64Bit CPU verwendet habe nicht für die ARMv7 Architektur.

Ist es den so, dass man durch das Kompilieren vom Quellcode (viele der Tools die ich verwendet haben waren open source) das Tool dadurch auf seinem PI zum laufen bringen kann?

Ich würde beispielsweise den Atom-Editor darauf verwenden (8GB RAM hat der PI).
Das .deb Paket vom Hersteller ist aber nicht für ARMv7 ausgelegt.
Kann ich das Problem mit dem Kompilieren des Codes umgehen?

Lg

WinliCLI

Content-Key: 654846

Url: https://administrator.de/contentid/654846

Ausgedruckt am: 28.03.2024 um 16:03 Uhr

Mitglied: 147448
147448 21.02.2021 um 20:26:27 Uhr
Goto Top
Hallo

Sollte selbererklärend sein

Alles DEB Pakete sind genannt, damit man den Programm-Code selber kompilieren kann, so auch auf einer ARM Architektur.

Oder du missbrauchst das Pi und bringst eine VM dort zum laufen !
Der weg des geringeren Widerstand ist es wohl den Code auf dem PI zu Übersetzen, und dann laufen zu lassen, als die kleine "Kiste" mit einer VM zu belasten face-wink
Mitglied: Windows10Gegner
Windows10Gegner 21.02.2021 um 20:30:42 Uhr
Goto Top
Der Code ist ja auch in irgendeiner Programmiersprache erstellt worden. Es benötigt dann einen Compiler für dein Ziel-OS auf der Ziel-Architektur.
Das braucht es für alle Komponenten, die das Programm nutzt. Wenn du z.B. ein Programm in C schreibst, welches zur Ausführung Java benötigt (weil Programmteile davon in Java geschrieben sind), dann musst du auf den Rechner auch irgendwie Java bekommen.
Umso mehr das an die Hardware geht, umso schwieriger wird das.
Mitglied: 147448
147448 21.02.2021 um 20:57:32 Uhr
Goto Top
Hallo

Warum ? Auf einem PI ist Java sehr wohl verfügbar !
Pi ist eine ARM Architektur, und dafür gibt es alles was man benötigt um den Code für diesen ATOM-Editor neu zu kompilieren.
Mitglied: Windows10Gegner
Windows10Gegner 21.02.2021 um 21:04:33 Uhr
Goto Top
Das war nur ein Beispiel. Es sollte zumindest mit allem gehen, wo die Funktionsweise der Programmiersprache und die Hardware bekannt sind. So könnte man da zumindest in der Theorie einen Compiler schreiben.

OpenJDK ist meines Wissens Open-Source, somit könnte da auch jemand einen Compiler für eine völlig neue Architektur schreiben.
Mitglied: 147448
147448 21.02.2021 um 21:21:42 Uhr
Goto Top
Keine Beispiele , der ATOM Editor läuft mit etwas Mühe sogar auf einem 3 er PI !

Wenn man mit der Denkweise eines wohl Windows Users auf Linux wechselt, dann ist es wohl eine überfordernde Frage, wie kann ich für "Null GELD" und "Null Handlungen abweichend vom Mausschupser-Aktivitäten" irgendwas machen !

Wenn er den Post vielleicht wo anders rein gestellt hätte, und neben der TO "Kann der Code einfach für jede CPU-Architektur kompiliert werden?" mal mit seinen weiteren Ausführungen verglichen ?

Wenn man sich keine SD Card für ein PI leisten kann, wo mal alle und diese möglichen Entwicklungsumgebungen und GUI aufspielt, und dann den fertigen Code nur auf die Arbeits-SD Überträgt ;) ???
Mitglied: ASP.NET.Core
ASP.NET.Core 21.02.2021 um 21:31:31 Uhr
Goto Top
Du kannst jeglichen Code für ARM kompilieren, sofern es OS Projekte sind. Gegebenenfalls sind Anpassungen notwendig. Beachte aber, dass das bei größeren Anwendungen einige Zeit dauern kann und du das für JEDES Update erneut durchführen musst. Das macht in der Kombination im Alltag eher weniger Spaß, wenngleich es mit einem 4er nicht mehr so schlimm sein sollte wie mit den älteren RPIs (da haben manche Projekte etliche Stunden bis Tage kompiliert...)

Ich für meinen Teil habe mir lieber einen günstigen x86 Tiny gekauft, da ein normales xUbuntu drauf installiert und man kann bequem alle Pakete aus den Repos laden. Ist Alltagstauglicher fürs Nutzen von GUI Programmen, sofern es dir mehr um einen praktikabel Einsatz geht und nicht primär ums lernen.
Mitglied: Lochkartenstanzer
Lochkartenstanzer 21.02.2021 aktualisiert um 21:43:44 Uhr
Goto Top
Moin,

Solange die Programme in einer Hochsprache geschrieben sind und keinen architekturspezifische Maschinencode enthalten, bzw. der Code für die Zielarchitektur vorhanden ist, kann man I.d.R. auch alles auf dem Pi kaufen lassen, nachdem man selbst kompiliert hat.

Wenn man sich damit Mal grundlegend beschäftigt hat, ist das sogar Recht einfach zu handhaben.

lks
Mitglied: mayho33
mayho33 21.02.2021 um 23:09:30 Uhr
Goto Top
Zitat von @147448:

Hallo

Warum ? Auf einem PI ist Java sehr wohl verfügbar !
Pi ist eine ARM Architektur, und dafür gibt es alles was man benötigt um den Code für diesen ATOM-Editor neu zu kompilieren.

Vielleicht ein konkretes Beispiel. Du schreibst ein Programm in C. Verwendest aber Dot.Net.Framework for Desktop. Dann wird dir der Code auf einer Machine auf der Linux läuft wenig bringen auch wenn C auch dort laufen würde.
Mitglied: Lochkartenstanzer
Lochkartenstanzer 22.02.2021 aktualisiert um 09:50:26 Uhr
Goto Top
Zitat von @mayho33:

Zitat von @147448:

Hallo

Warum ? Auf einem PI ist Java sehr wohl verfügbar !
Pi ist eine ARM Architektur, und dafür gibt es alles was man benötigt um den Code für diesen ATOM-Editor neu zu kompilieren.

Vielleicht ein konkretes Beispiel. Du schreibst ein Programm in C. Verwendest aber Dot.Net.Framework for Desktop. Dann wird dir der Code auf einer Machine auf der Linux läuft wenig bringen auch wenn C auch dort laufen würde.


Dann nimmt man halt Mono als Ersatz für dot.net.
face-smile

Abgesehen davon bietet auch MS Unterstützung on dot.net unter Linux.

lks
Mitglied: mayho33
mayho33 22.02.2021 um 12:26:53 Uhr
Goto Top
Zitat von @Lochkartenstanzer:
Dann nimmt man halt Mono als Ersatz für dot.net.
face-smile

Abgesehen davon bietet auch MS Unterstützung on dot.net unter Linux.

lks

Natürlich! Aber die Frage ging ja in einer andere Richtung und meine Beispiel auch. Und du hast es weiter oben ja auch schon so kommentiert.

Kann man also Code der OS- und architektur-spezifische Elemente enthält auf einem anderen OS mit anderer Prozessor-Architektur kompilieren? Ad Hoc nein!
Mitglied: 117471
117471 22.02.2021 um 16:27:37 Uhr
Goto Top
Hallo,

normalerweise ja.

Allerdings verwendet der Code u.U. auch Libraries, die ebenfalls im Quellcode vorliegen oder entsprechend compiliert sein müssen. Und es gibt tatsächlich Konstrukte, die einen Code architekturabhängig machen (z.B. Inline-Code, was heutzutage aber eher unüblich ist).

Jeder Prozessor und jede Architektur hat einen bestimmten Befehlssatz. Vorraussetzung wäre natürlich auch, dass das, was Du compilieren willst, mit dem Befehlssatz läuft. Z.B. wirst Du KVM nicht auf einer Möhre compiliert kriegen, deren Prozessor keine Virtualisierung kennt face-smile

Gruß,
Jörg
Mitglied: 147448
147448 23.02.2021 um 21:33:48 Uhr
Goto Top
Das ist doch immer wieder so eine Kotze ( entschuldigt das Wort ) dass man nicht sauber Programmiert und sondern auf Systemspezifische Standard Programm Bibliotheken zurückgreift,und somit auch die eigene bevorzugte Programmiersprache verlässt !
Solange hier reine OOP unterwegs sind, die nur Windows kennen wird man keinen Konzens finden.
Mitglied: Windows10Gegner
Windows10Gegner 23.02.2021 um 21:39:04 Uhr
Goto Top
Das ist normal, weil man das Rad niht neuerfinden will.
Man nutzt einfach definierte Schnittstellen zu schon vorhandenem Code.
Mitglied: 147448
147448 23.02.2021 um 22:04:31 Uhr
Goto Top
Warum soll man(n) das Rad neu erfinden ?

Mal die ganz ehrliche Frage , die auf APIs und Programmbibliotheken abzielt.
Auch der VLC bringt für um unter WIN zu laufen eigene Schnittstellen mit, die in der gesamten Unixoiden Welt genutzt werden . Und VLC ist wohl auch unter WIN einer der verbreitesten Medien-Player !

Die LIB-DLL Übersetzung GTK gibt es gleich gratis dazu !

Nun ist es wohl nur noch eine reine Aufwands- und Verständnisfrage, wie langesich WIN noch im Desktop Bereich halten wird, zumal immer mehr professionelle Anbieter entweder auf die WEB Console beschränken, oder darüber die zT Open Source Software auch für WIN bereitstellen.

Schlimm, schlimm, wenn man nur mal weiter denken würde.

Würde mal alle Unixoiden Geräte mit einem Ausschaltbefehl wirklich ausschalten können, was wäre dann Windows ? Nicht viel mehr wie MS-DOS von der Diskette gestartet !

Kein Mensch braucht um einen 10 seitigen Brief zu schreiben, einen GIGANTISMUS - Prozessor aus dem Hause Intel, mehr als 4 oder 8 GB RAM, und auch kein Betriebssystem wie Windows was mit der Office Suite mehr als 4 GB RAM fordert !

Das gesamte Machwerk um WINDOWS kann heute keiner mehr durchleuchten ! Es ist neben das es ein Speicherfressendes Konstrukt ist, und die Software noch mehr Ressourcen fordert eine TOD Geburt !

Nur solange die User, die Massenware von der Stange kaufen, werden erschreckt, wenn nicht WINDOWS draufsteht !