Zu den eingebetteten Linux-Entwicklungstools gehören: 1. vim ist ein aus vi entwickelter Texteditor. Er verfügt über Funktionen wie Code-Vervollständigung, Kompilierung und Fehlersprung, um die Programmierung zu erleichtern Von GNU entwickelter Compiler. 3. Projektmanager make, make ist ein automatischer Projektkompilierungsmanager unter Linux usw.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.
Was sind die eingebetteten Linux-Entwicklungstools?
Eingebettete Linux-Entwicklungstools
Verwenden von vim
1. Texteditor: vim + vscode: Lernen Sie, vim zu verwenden und zu konfigurieren, Plug-ins + Remote-Link vscode zu verwenden
2: Häufig verwendete Kompilierungsoptionen, Erstellung und Verwendung von statischen Bibliotheken und dynamischen Bibliotheken
3: Debugger-GDB: Debuggen von Haltepunkten, Anzeigen von Speicherfehlern
4. Shell-Programmierung (nach C-Sprache)
6. Git-Versionsverwaltungstool (online: C-Sprache)
7. Cmake (Projekt)
vi /vim/gvim: Texteditor gedit emac (aus der Maus)
Anwendbare Szenarien: Bearbeitung einzelner Dateien; ,i), Endzeilenmodus, Einfügemodus (esc wechselt zur Befehlszeile) wq Speichern und beenden
vim-Konfiguration (vimc):
Ändern Sie die Datei /etc/vim/vimc (Zeilennummer, Einrückungsstil). , Mausunterstützung)
1 |
|
Befehlszeile: yy kopieren p einfügen dd löschen u vorherige Zeile wiederherstellen
Ersetzen: Zeilennummer Oder %s/old/new/gc
Sprung: n Dateiname
Dateispeicherung w r
sp+Dateiname mehrere Datei schreiben
gcc-Compiler<> Unterschied zwischen „“ und „“: Der Suchpfad ist unterschiedlich: Ersteres ist im System-Header-Dateiverzeichnis " /usr/include》Suchen, wenn nicht, wird ein Fehler gemeldet
Letzteres wird im aktuellen Verzeichnis durchsucht, wenn nicht, wird es im System-Header-Dateiverzeichnis durchsucht, andernfalls , es wird ein Fehler gemeldet
Spezifikation: <>System-Header-Dateien einschließen“ „Benutzerdefinierte Header-Dateien einschließen
1 2 |
|
Alle Header-Dateien im System befinden sich in vim/user/include/header-Dateien
gcc-Übersicht: Vom GNU-Projekt bereitgestellte Compiler (Unix-CC-Compiler) (Kompilierungstoolkette g++ ld ldfd) –> (Cross-Compilation-Toolkette)
Was ist Cross-Compilation? .c–> Prozess
1 2 3 4 5 |
|
Kompilierungsoptionen
-o (Umbenennung der ausführbaren Datei: Elf-Format?)
-I: Geben Sie einen Drittanbieter für die Kompilierung der Header-Datei an
- S: Weiter zur Kompilierungsphase
-O1 -O2 -O3 (Kompilierungsoptimierung): Baidu prüft, was getan wurde
extern: Diese Funktion wurde in anderen Dateien definiert
Bibliotheksfunktion: printf scanf strcpy strcat (in Bibliotheksdatei gespeichert)
Bibliotheksdatei: Funktionen und Variablen speichern, die Funktionen und die darin enthaltenen Variablen können nur verwendet werden, ihre Implementierung ist jedoch nicht sichtbar ausführbare Datei während der Kompilierungsphase
Dynamische Bibliothek (.so): gespeicherte Funktionen und Variablen, die während der Ausführungsphase in die ausführbare Datei geladen werden
Der Unterschied zwischen der Verwendung statischer Bibliotheken und dynamischer Bibliotheken (der Unterschied zwischen ausführbaren Dateien :)
Ausführbare Dateien, die mit statischen Bibliotheken kompiliert wurden. Die Größe ausführbarer Dateien, die mit dynamischen Bibliotheken kompiliert wurden, wirkt sich auf den Speicheraufwand aus Aktualisieren Sie die ausführbare Datei, die von der statischen Bibliothek kompiliert wurde.
Verwenden Sie die ausführbare Datei, die von der statischen Bibliothek kompiliert wurde. Programmbereitstellung.> Verwenden Sie die dynamische Bibliothek. Das von der Bibliothek kompilierte ausführbare Dateiprogramm wird bereitgestellt
Der Speicherpfad der Bibliotheksdatei:
Für den Betrieb von Software und Tools von Drittanbietern erforderliche Bibliotheken: /usr/lib
Erstellen Sie eine statische Bibliothek:
Kompilieren Sie die Zielquelldatei in eine Zieldatei: gcc -c Zielquelldatei (kann mehrere sein) (gcc -c add.c)
Verwenden Sie das AR-Tool, um eine statische Datei zu erstellen: ar -rcs (erstellen Sie if die Bibliothek existiert nicht) , aktualisieren, falls vorhanden) Der Name der zu generierenden Bibliotheksdatei (lib+Bibliotheksname+Suffix.a) Zieldatei
Beispiel: ar -rcs libadd.a add.o
Statische Bibliothek verwenden:
-l: Geben Sie an, welche statische Bibliothek geladen werden soll. -l Bibliotheksname.
-L: Geben Sie den Speicherpfad der geladenen Bibliotheksdatei an : gcc demo.c -ladd -L./ libls
Projektmanager makeWas ist ein Projekt?
Mehrere Quelldateien + andere Dateien (Bilder + Header-Dateien + Skriptdateien)
Job des Projektmanagers: Mehrere Quelldateien kompilieren
gcc + alle Quelldateien – o ausführbare Datei – >Automatische Kompilierung
make basiert auf Makefile-Dateien;
Makefile-Dateien sind eine Art Skriptdatei (Stapelverarbeitung) und es gibt eine zugehörige Syntax
Makefile-Syntax:
Drei Elemente: Ziel, Abhängigkeit, Befehl
Ziel: Abhängigkeit
tab-Befehl
Ziel: die endgültig generierte Datei
Abhängigkeit: die zum Generieren des Ziels benötigte Datei
Befehl: der Befehl, der beim Generieren des Ziels ausgeführt werden muss
Ausführung Reihenfolge:
make: Standardmäßig wird es vom ersten Zielkörper ausgeführt
make+ Zielkörper: Wird vom entsprechenden Zielkörper ausgeführt
Wenn die Datei, von der der Zielkörper abhängt, ein Ziel ist, entspricht das Ziel Die Abhängigkeit wird zuerst ausgeführt, und dann wird der Zielkörper ausgeführt. Der Befehl
kann ein Makefile oder ein Makefile erstellen. make -f Makefile -f gibt an, welches Makefile ausgeführt werden soll.
Makefile:
Hinweise: #
Das Ziel kann ersetzt werden von $@
Makefile der obersten Ebene: Master-Control-Makefile
Unterverzeichnis Makefile: Funktions-Makefile
Skriptverzeichnis Makefile: Header-Datei Makefile
Master-Steuerung Make-Datei: Eingabe Führen Sie den Make-Befehl in jedem funktionalen Unterverzeichnis aus, um die .o-Dateien in jedem Unterverzeichnis zu einer ausführbaren Datei zu verknüpfen
Header-Datei Makefile: Definieren Sie einige Variablen
Verwandte Empfehlungen: „
Linux Video Tutorial“
Das obige ist der detaillierte Inhalt vonWas sind die eingebetteten Linux-Entwicklungstools?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!