組込み設計のコース(3)

組み込みLinux開発ツールおよびコースの目的

VIM(テキストエディタ)を使用してする方法を学習するように設定するのvim
のgcc(コンパイラ)、動的および静的ライブラリを作ると違い使用する方法
オフに設定し、GDP(デバッガ)、シングルステップ実行、デバッグメモリエラー
書き込みメイク(プロジェクトマネージャー)メイク

Linuxテキストエディタは:vim-最も強力なテキストエディタ - マウスを取り除きます

VI-VIM-のgvim:コマンドラインモードNYY \ P \ NDD \ U、挿入iモード、ラインモード:+ Shiftキー
(セーブ・Iまたは終了するEscキーを入力してください:WQコピーが削除回復を貼り付けYY P DD u)の
設定vimの?の/ etc / vimの/ vimrcが
IDE(統合開発環境)-vscode

組み込みLinux開発ツール-gcc

コンパイラ:GCC(GNU CC)
1は、GCC(GNUツール、クロスコンパイラ)を備えてい
クロスコンパイラは何**を?**なぜ我々はクロスコンパイラが必要なのですか?
クロスコンパイラ:他に実行可能な他のCPUプラットフォームのコードをコンパイルし、現在のCPUプラットフォームで
いくつかの段階を通過する必要があり、実行可能ファイルにソースファイル?
前処理、コンパイラ、アセンブラ、リンカ
前処理:ヘッダファイル(<>パスを検索展開:USR /ヘッダファイルのディレクトリを/含ま
「」パスの検索要素:現在のディレクトリ内の最初のルックスをして、ファイルのディレクトリシステムを見つけることができません検索)マクロ置換、条件付きコンパイル
-Eのみの前処理(接尾辞.iの)-Eのhello.c gccの
-Sコンパイルステージ停止
-cアセンブラが停止した後
、実行可能ファイルに名前を変更-o
最初-I指定するヘッダファイルを三者検索パス
-Dの内部定義に外部の
コンパイラ:-S .Sアセンブリファイルにコンパイル前処理されたファイル
-O1、-O2、-O3、コンパイラの最適化
アセンブラ:アセンブラは、コンパイルされたオブジェクトファイルをファイルは、-cの.o
リンク:シンボリックを作成しますテーブル- a.outの実行ファイル
-Wall警告レベルの増加が
警告オフ-w GCCのhello.c -w -oハロー
システム移行:ホスト<クロスコンパイラ>ターゲット

静的および動的ライブラリの生産

1.ライブラリーとは何ですか?関数や変数(倉庫)の保存
機能:関数や変数の保存、のみ使用しますが、見ることができない、その実装
2、Linuxのライブラリ:
静的ライブラリ.A:コンパイル時にロードされたが、(コード・ライブラリ・ファイルは、ソースファイルにロードされます)
、動的ライブラリの.so:実行時にロードされ、
実行可能ファイル結果の違い(長所と短所)があります
。1.使用静的ライブラリ生成された実行可能ファイル]> [実行可能ファイルを生成した動的ライブラリは、(プログラム実行中のメモリがより占有)
2実行可能ファイルを生成した静的ライブラリを使用してアップグレードすることは困難であり、実行可能ファイルを生成した動的ライブラリを簡単にアップグレードすることで、
高速な静的ライブラリ3.使用速度を実行している生成された実行可能ファイル、実行可能ファイルを生成した動的ライブラリはゆっくり走る
4。簡単な動的ライブラリを展開することが難しく、デプロイするためにされた実行可能コードを使用して、静的ライブラリファイル。

3、Linuxのライブラリファイルの格納パス:(自動的にパスを検索)
\ libに:必要なライブラリ実行しているストレージシステム
のストレージプログラムライブラリを実行するために必要とされる:\ USR \ libには、

静的ライブラリを作成するには?

1は、ファイルの機能を保存する必要がありますどこコンパイルされたオブジェクトファイル-c add.cのgcc - > add.o
2.静的ライブラリオーサリングツール:アルゴン
アルゴンRCSは、(作成されて存在していない、そこに更新された)ターゲットライブラリ名ファイル名
のAr RCS libadd.a add.o
(libadd.a CP / libまたは/ usr / lib
3.使用
のgccのソースファイル名-lライブラリパス-L在庫リリース
のgccのmain.c -ladd -L。-o追加

動的ライブラリを作成するには?

gccの-shared -fPIC libcal.soソースファイル-o
のgcc -shared -fPIC add.c sub.c -o libcal.so

仕事

この静的な役割-static gccの?
1、非表示
でないすべての接頭辞のプラスグローバル変数と関数は、グローバルな可視性持っている静的、同時に複数のファイルをコンパイルし
、永続変数の内容に保つために2:プログラム実行の初めに完成予定変数は静的データ領域に格納されているが初期化、そして唯一の時間の初期化、(静的ローカル変数の場合にのみ、プログラムの全体の終わりにリリースに自動的に変更されます。次の呼び出しは、それが再文を必要としない、と最後の時間を保持するローカル変数の関数ならばコール預金値。)
3、静的変数はデフォルトで0で初期化され、初期化されていない
第三の役割はゼロに初期化され、デフォルトの静的です。グローバル変数は静的データ領域に格納されているため、実際には、グローバル変数も、この特性を持っています。静的データ領域では、全てのメモリにデフォルト値は時々この機能は、プログラマの負担を軽減することができ、0x00であるバイト。
静的の役割の3文の要約を行います。静的変数はスタティックメモリに記憶されているので、最初の静的主な機能は、それが持続し、0のデフォルト値を持つように、隠された、第二されています。

プレビューGDBメイク(リンクが付属)
https://blog.csdn.net/yulong__li/article/details/88049047

リリース5元の記事 ウォンの賞賛2 ビュー123

おすすめ

転載: blog.csdn.net/qq_43312538/article/details/104873659