Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Was sind die eingebetteten Linux-Entwicklungstools?
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)
vim /etc/vim/vimrc
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-CompilerUnterschied 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#if 0 //注释 //#if 1//取消注释
#endif
Unterschiedliche Prozessoren haben unterschiedliche Assemblys
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
a\源文件到可执行经历了哪几个步骤?(预处理,编译,汇编,链接) b\预处理的任务:头文件展开(#include)、宏替换(#define)、条件编译(#ifdef)(#开头的代码) c\编译的任务:检查语法。转成汇编、生成汇编文件(.s/.S) d\汇编的任务:编译汇编文件,生成目标文件(.o) e\链接的任务:链接所有目标文件,生成符号表,生成可执行文件
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 Was 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: „ “
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!