Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Was sind die eingebetteten Linux-Entwicklungstools?

Was sind die eingebetteten Linux-Entwicklungstools?

藏色散人
藏色散人Original
2023-03-17 09:43:152982Durchsuche

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.

Was sind die eingebetteten Linux-Entwicklungstools?

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
  • Plug-in installieren
  • Vim-Befehlsverwendung:

Befehlszeile: yy kopieren p einfügen dd löschen u vorherige Zeile wiederherstellen

    Untere Zeile: Suchen /str ?str
  • Ersetzen: Zeilennummer Oder %s/old/new/gc

  • Mehrere Dateien bearbeiten: vim Datei 1 Datei 2 Datei 3..

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

#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?)

  • -E (der Compiler führt nur eine Vorverarbeitung durch)

-I: Geben Sie einen Drittanbieter für die Kompilierung der Header-Datei an

- S: Weiter zur Kompilierungsphase

    -c: Weiter zur Montagephase
  • -O1 -O2 -O3 (Kompilierungsoptimierung): Baidu prüft, was getan wurde

  • -w (Aus-Warnung) -Wall (Ein-Warnung) )? Makefile-Schreiben, Makefile-Schreiben in mehrere Verzeichnisse)

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 Systembetrieb erforderliche Bibliotheksdateien: /lib
  • Für den Betrieb von Software und Tools von Drittanbietern erforderliche Bibliotheken: /usr/lib

  • Beim Kompilieren wird die Der Compiler geht automatisch zu diesen beiden Verzeichnissen, um die Bibliotheksdateien zu finden, die verknüpft werden müssen

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 make

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

  • Format:

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 $@

Was sind die eingebetteten Linux-Entwicklungstools?

Was sind die eingebetteten Linux-Entwicklungstools?

Was sind die eingebetteten Linux-Entwicklungstools?

Was sind die eingebetteten Linux-Entwicklungstools?

Makefile in mehrstufigen Verzeichnissen:

Was sind die eingebetteten Linux-Entwicklungstools?

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

  • Funktion Makefile: Kompilieren Sie die .c-Datei im aktuellen Verzeichnis, um eine .o-Datei zu generieren

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn