ホームページ  >  記事  >  運用・保守  >  組み込み Linux 開発ツールとは何ですか?

組み込み Linux 開発ツールとは何ですか?

藏色散人
藏色散人オリジナル
2023-03-17 09:43:152879ブラウズ

組み込み Linux 開発ツールには次のものが含まれます: 1. vim ツール. Vim は vi から開発されたテキスト エディタであり、コード補完、コンパイル、エラー ジャンプなどの便利なプログラミング機能を備えています; 2. gcc コンパイル コンパイラ、プログラミング言語GNU によって開発されたコンパイラ; 3. プロジェクト マネージャー make、make は Linux などの自動プロジェクト コンパイル マネージャーです。

組み込み Linux 開発ツールとは何ですか?

#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。

組み込み Linux 開発ツールとは何ですか?

組み込み Linux 開発ツール

vim の使用

1. テキスト エディタ: vim vscode: 使い方を学ぶvim を設定し、プラグイン リモート リンク vscode をインストールして使用します

2. コンパイラ gcc: 一般的なコンパイル オプション、静的ライブラリと動的ライブラリの作成と使用

3. デバッガ gdb: ブレークポイントのデバッグ、メモリの表示、メモリ エラーのデバッグ

4. プロジェクト マネージャの make: Makfile の作成、マルチディレクトリ Makefile の作成

5. シェル プログラミング (C 言語以降)

6. git バージョン管理ツール (オンライン: C 言語)

7. Cmake (プロジェクト)

8. メモリ検出ツール (オンライン: C 言語)

vi/vim/gvim : テキスト エディタ gedit emac (オフ ザ マウス)

  • 該当するシナリオ: 単一ファイルの編集、vim プラグイン (高度にカスタマイズされた)>IDE

  • vim モード: コマンド ライン モード (初めて入力するときは、a,i を押します)、ボトム ライン モード、挿入モード (esc でコマンド ラインに切り替わります) wq を保存して終了します

  • vim設定 (vimc):

/etc/vim/vimc ファイルを変更します (行番号、インデント スタイル、マウス サポート)

vim /etc/vim/vimrc

プラグインをインストールします

  • vim コマンドの使用法:

コマンド ライン: yy copy p past dd delete u stop before line

最後の行: find / str ?str

置換: 行番号または %s/old/new/gc

複数のファイルを編集: vim ファイル 1 ファイル 2 ファイル 3。

Jump: n ファイル名

ファイル保存 w r

sp ファイル名複数ファイル書き込み

gcc コンパイラ

"" と "" の違い: 検索パスが異なります。前者はシステム ヘッダー ファイル ディレクトリ "/usr/include" を検索します。そうでない場合は、エラーが報告されます。

後者は現在のディレクトリを検索します。そうでない場合は、システム ヘッダー ファイル ディレクトリを検索します。そうでない場合は、エラーが報告されます。

仕様: システム ヘッダー ファイルが含まれます "" カスタム ヘッダー ファイルが含まれますヘッダー ファイル

#if 0 //注释 //#if 1//取消注释
#endif

プロセッサが異なればアセンブリも異なります

システム内のすべてのヘッダー ファイルは vim/user/include/header ファイルにあります

  • gcc 概要: GNU プロジェクトによって提供されるコンパイラ (Unix cc Compilation Converter) (コンパイル ツール チェーン g ld ldfd) –> (クロスコンパイル ツール チェーン)

  • クロスコンパイルとは何ですか? .c->.s->.o->elf

ホスト マシンでコードをコンパイルしてターゲット マシンで実行するプロセス

In現在の CPU プラットフォームの下で他の CPU プラットフォームで実行されているコードをコンパイルするプロセス

a\源文件到可执行经历了哪几个步骤?(预处理,编译,汇编,链接)
b\预处理的任务:头文件展开(#include)、宏替换(#define)、条件编译(#ifdef)(#开头的代码)
c\编译的任务:检查语法。转成汇编、生成汇编文件(.s/.S)
d\汇编的任务:编译汇编文件,生成目标文件(.o)
e\链接的任务:链接所有目标文件,生成符号表,生成可执行文件
  • コンパイル オプション

-o (実行可能ファイルの名前変更: elf 形式) ?)

-E (コンパイラは前処理のみを実行します)

-I: ヘッダー ファイルのコンパイル用のサードパーティ パスを指定します

-S: コンパイル フェーズを実行します

-c: アセンブリ段階に進みます

-O1 -O2 -O3 (コンパイルの最適化): Baidu で何が行われたかを確認します

-w (警告が表示されません) -Wall (警告をオンにする): 警告情報を切り替えます

ライブラリ ファイル

  • コンパイラ gcc (静的ライブラリと動的ライブラリの作成と使用)

  • デバッガ gdb (一般的な命名、メモリ エラーの呼び出し)

  • プロジェクト マネージャ make (メイクファイルの書き込み、複数ディレクトリの Makefile の書き込み)

extern: この関数は他のファイルで定義されています

ライブラリ関数: printf scanf strcpy strcat (ライブラリ ファイルに保存)

ライブラリ ファイル: 関数と変数を保存します。内部の関数と変数は使用することのみ可能ですが、その実装は表示されません

ライブラリ ファイルの分類: 静的ライブラリ (.a) と動的ライブラリ (.so)

静的ライブラリ (.a ) : 保存された関数と変数は、コンパイル フェーズ中に実行可能ファイルにロードされます。

ダイナミック ライブラリ (.so): 保存された関数と変数は、実行フェーズ中に実行可能ファイルにロードされます

静的ライブラリと動的ライブラリの使用の違い (実行ファイルの違い:)

  • 静的ライブラリを使用してコンパイルされた実行ファイル>動的ライブラリを使用してコンパイルされた実行ファイルのサイズ- - メモリに影響するオーバーヘッド

  • 静的ライブラリを使用してコンパイルされた実行可能ファイルの実行速度>動的ライブラリを使用してコンパイルされた実行可能ファイルの実行速度

  • #実行可能ファイルを使用する静的ライブラリからコンパイルされたファイルをアップグレードする

  • 静的ライブラリからコンパイルされた実行可能ファイルを使用してプログラムをデプロイする>動的ライブラリを使用して、コンパイル 出てきた実行ファイルプログラムをデプロイします

ライブラリファイルの格納パス:

システム動作に必要なライブラリファイル: /lib

3番目-ツールの実行に必要なパーティ ソフトウェアとライブラリ:/usr/lib

コンパイル時、コンパイラは自動的にこれら 2 つのディレクトリに移動して、リンクする必要があるライブラリ ファイルを見つけます

静的にするライブラリ:

  • ターゲット ソース ファイルをターゲット ファイルにコンパイルします: gcc -c ターゲット ソース ファイル (複数可) (gcc -c add.c)

  • ar ツールは静的になります: ar -rcs (ライブラリが存在しない場合は作成、存在する場合は更新) 生成されるライブラリ ファイルの名前 (lib ライブラリ名の接尾辞 .a) ターゲット ファイル

例: ar -rcs libadd.a add.o

静的ライブラリを使用する:

-l: ロードする静的ライブラリを指定します -l ライブラリ名

-L: 読み込むライブラリを指定 ファイル格納パス

gcc ソースファイル-l ライブラリ名-L ライブラリ格納パス

例: gcc Demon.c -ladd -L./libls

プロジェクトマネージャーメイク

  • プロジェクトとは何ですか?

複数のソースファイルとその他のファイル(ピクチャーヘッダーファイル、スクリプトファイル)

  • プロジェクトマネージャーの仕事:複数のソースファイルをコンパイルする

gcc すべてのソース ファイル -o 実行可能ファイル -> 自動コンパイル

  • ##make は Makefile ファイルに依存します;

  • #Makefile はスクリプト ファイル (バッチ処理) であり、関連する構文が存在します。
  • Makefile 構文:
  • 3 つの要素: target 、 dependency 、コマンド

形式:

ターゲット: 依存関係

タブ コマンド

ターゲット: 最終的に生成されたファイル

依存関係: 必要なファイルを生成ターゲットの場合

コマンド: ターゲットの生成時に実行する必要があるコマンド

実行順序:

make: デフォルトでは最初のターゲットから実行されます

make target body: 対応するターゲットボディから実行

#ターゲットボディが依存するファイルがターゲットの場合、依存ターゲットを先に実行してからターゲットボディのコマンドを実行

Makefile をビルドするか、Makefile make -f Makefile -f を実行してどの Makefile を実行するかを指定できます。

Makefile:

Comments:

#$@ の代わりに $@ を使用できます。

ターゲットの

組み込み Linux 開発ツールとは何ですか?

組み込み Linux 開発ツールとは何ですか?

組み込み Linux 開発ツールとは何ですか?

組み込み Linux 開発ツールとは何ですか?

# マルチレベル ディレクトリの下の Makefile:

組み込み Linux 開発ツールとは何ですか?

トップレベル Makefile: Master Control Makefile

  • サブディレクトリ Makefile: Function Makefile

  • スクリプト ディレクトリ Makefile: ヘッダー ファイル Makefile

  • #一般制御 Makefile: 各機能サブディレクトリに入って make コマンドを実行し、各サブディレクトリ内の .o ファイルをリンクします。実行可能ファイルに変換します

    関数 Makefile: 現在のディレクトリにある .c ファイルをコンパイルして .o ファイルを生成します
ヘッダー ファイル Makefile: いくつかの変数を定義します

関連する推奨事項: "

Linux ビデオ チュートリアル

以上が組み込み Linux 開発ツールとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。