久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

嵌入式linux開發(fā)工具怎么用

177次閱讀
沒有評論

共計 2676 個字符,預計需要花費 7 分鐘才能閱讀完成。

今天丸趣 TV 小編給大家分享一下嵌入式 linux 開發(fā)工具怎么用的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

嵌入式 linux 開發(fā)工具有:1、vim 工具,vim 是從 vi 發(fā)展出來的一個文本編輯器,有代碼補全,編譯及錯誤跳轉(zhuǎn)等方便編程的功能;2、gcc 編譯器,是由 GNU 開發(fā)的編程語言編譯器;3、工程管理器 make,make 是 linux 中的工程自動編譯管理器等。

嵌入式 Linux 開發(fā)工具

vim 的使用

1、文本編輯器:vim +vscode:學會使用并配置 vim、安裝及使用插件 + 遠程鏈接 vscode

2、編譯器 gcc:常用編譯選項,靜態(tài)庫和動態(tài)庫的制作和使用

3、調(diào)試器 gdb:斷點調(diào)試、查看內(nèi)存、調(diào)試內(nèi)存錯誤

4、工程管理器 make:編寫 Makfile, 多目錄的 Makefile 編寫

5、shell 編程(C 語言之后)

6、git 版本管理工具(線上:C 語言)

7、Cmake(項目)

8、內(nèi)存檢測工具(線上:C 語言)

vi/vim/gvim: 文本編輯器 gedit emac(脫離鼠標)

適用場景:單文件編輯;vim+ 插件(高度定制)IDE

vim 模式:命令行模式(初次進入,按 a,i)、底行模式、插入模式(esc 切換為命令行)wq 保存退出

vim 配置(vimc):

修改 /etc/vim/vimc 文件(行號,縮進風格、鼠標支持)

vim /etc/vim/vimrc

安裝插件

vim 命令的使用:

命令行:yy 復制 p 粘貼 dd 刪除 u 恢復上一行

底行:查找 /str ?str

替換:行號或者 %s/old/new/gc

編輯多個文件:vim 文件 1 文件 2 文件 3.。

跳轉(zhuǎn):n 文件名

文件保存 w r

sp+ 文件名 多文件編寫

gcc 編譯器

和“”區(qū)別:搜索路徑不同:前者在系統(tǒng)頭文件目錄《/usr/include》搜索, 若沒有,就報錯

后者在當前目錄查找,若沒有,再到系統(tǒng)頭文件目錄查找,若沒有,就報錯

規(guī)范:包含系統(tǒng)頭文件“”包含自定義頭文件

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

不同的處理器有不同的匯編

系統(tǒng)內(nèi)的所有頭文件都在 vim/user/include/ 頭文件

gcc 概述:GNU 計劃提供的編譯器(Unix cc 編譯器 )(編譯工具鏈 g++ ld ldfd)–(交叉編譯工具鏈)

什么是交叉編譯?.c- .s- .o- elf

在宿主機下編譯出在目標機下運行的代碼的過程

在當前 CPU 平臺下編譯出在其它 CPU 平臺運行的代碼的過程

a\ 源文件到可執(zhí)行經(jīng)歷了哪幾個步驟?(預處理,編譯,匯編,鏈接)b\ 預處理的任務:頭文件展開(#include)、宏替換(#define)、條件編譯(#ifdef)(# 開頭的代碼)c\ 編譯的任務:檢查語法。轉(zhuǎn)成匯編、生成匯編文件(.s/.S)d\ 匯編的任務:編譯匯編文件,生成目標文件(.o)e\ 鏈接的任務:鏈接所有目標文件,生成符號表,生成可執(zhí)行文件 

編譯選項

-o(可執(zhí)行重命名:elf 格式?)

-E(編譯器只進行預處理)

-I:指定頭文件編譯的第三方路徑

-S: 進行編譯階段

-c: 進行到匯編階段

-O1 -O2 -O3(編譯優(yōu)化):百度查分別做了什么

-w(關(guān)警告)-Wall(開警告): 開關(guān)警告信息

庫文件

編譯器 gcc(靜態(tài)庫的動態(tài)庫的制作和使用)

調(diào)試器 gdb(常用命名,調(diào)用內(nèi)存錯誤)

工程管理器 make(makefile 編寫,多目錄的 Makefile 的編寫)

extern: 該函數(shù)在其它文件已經(jīng)定義

庫函數(shù):printf scanf strcpy strcat(保存在庫文件)

庫文件:保存函數(shù)和變量,里面的函數(shù)和變量只能使用,但是看不到其實現(xiàn)

庫文件分類:靜態(tài)庫(.a)和動態(tài)庫(.so)

靜態(tài)庫(.a):保存的函數(shù)和變量,在編譯階段加載到可執(zhí)行文件中

動態(tài)庫(.so):保存的函數(shù)和變量,在執(zhí)行階段加載到執(zhí)行文件中

使用靜態(tài)庫和動態(tài)庫的區(qū)別(可執(zhí)行文件的區(qū)別:)

使用靜態(tài)庫編譯出來的執(zhí)行文件 使用動態(tài)庫編譯出來的可執(zhí)行文件大小 – 影響內(nèi)存的開銷

使用靜態(tài)庫編譯出來的執(zhí)行文件執(zhí)行速度 使用動態(tài)庫編譯出來的可執(zhí)行文件執(zhí)行速度

使用靜態(tài)庫編譯出來的執(zhí)行文件升級 使用動態(tài)庫編譯出來的可執(zhí)行文件升級

使用靜態(tài)庫編譯出來的執(zhí)行文件程序部署 使用動態(tài)庫編譯出來的可執(zhí)行文件程序部署

庫文件的存放路徑:

系統(tǒng)運行所需要的庫文件:/lib

第三方軟件和工具運行所需要的庫:/usr/lib

編譯時,編譯器會自動到這兩個目錄里找所需要鏈接的庫文件

制作靜態(tài)庫:

將目標源文件編譯成目標文件:gcc -c 目標源文件(可以多個)(gcc -c add.c)

使用 ar 工具制作靜態(tài):ar -rcs(庫不存在就創(chuàng)建,存在就更新)所要生成的庫文件的名字(lib+ 庫名 + 后綴.a)目標文件

例:ar -rcs libadd.a add.o

使用靜態(tài)庫:

-l: 指定加載哪個靜態(tài)庫 - l 庫名

-L:指定加載的庫文件的存放路徑

gcc 源文件 - l 庫名 - L 庫存放的路徑

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

工程管理器 make

什么是工程?

多個源文件 + 其他文件(圖片 + 頭文件 + 腳本文件)

工程管理器的作業(yè):編譯多個源文件

gcc + 所有源文件 -o 可執(zhí)行文件 — 自動編譯

make 依賴于 Makefile 文件;

Makefile 文件是一種腳本文件(批處理),存在相關(guān)語法

Makefile 語法:

三要素:目標、依賴、命令

格式:

目標:依賴

tab 命令

目標:最終生成的文件

依賴:生成目標時所需要的文件

命令:生成目標時,需要執(zhí)行的命令

執(zhí)行順序:

make:默認從第一個目標體執(zhí)行

make+ 目標體:從對應的目標體執(zhí)行

如果目標體后面依賴的文件是一個目標的話,先執(zhí)行依賴對應的目標,再執(zhí)行目標體的命令

可以建 makefile 或者 Makefile make -f Makefile - f 指定執(zhí)行那個 Makefile

Makefile:

注釋:#

目標可以用 $@代替

多級目錄下的 Makefile:

頂層 Makefile:總控 Makefile

子目錄 Makefile:功能 Makefile

scripts 目錄 Makefile:頭文件 Makefile

總控 Makefile:進入各個功能子目錄下執(zhí)行 make 命令,將各個子目錄下的.o 文件鏈接成可執(zhí)行文件

功能 Makefile:將當前目錄下的.c 文件編譯生成.o 文件

頭文件 Makefile:定義一些變量

以上就是“嵌入式 linux 開發(fā)工具怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,丸趣 TV 小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-12發(fā)表,共計2676字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 平定县| 德安县| 都匀市| 宝山区| 晋城| 辽宁省| 牡丹江市| 南平市| 桂阳县| 余江县| 丁青县| 松溪县| 仪陇县| 麻江县| 潍坊市| 九龙城区| 靖江市| 泾阳县| 称多县| 丹阳市| 孙吴县| 常州市| 宁安市| 阿拉善左旗| 玛纳斯县| 灵丘县| 阜南县| 政和县| 固安县| 泊头市| 咸阳市| 那曲县| 宣恩县| 青田县| 工布江达县| 辽宁省| 长海县| 广河县| 高平市| 湖南省| 子长县|