亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

嵌入式linux開發工具怎么用

發布時間:2023-03-17 10:14:56 來源:億速云 閱讀:295 作者:iii 欄目:建站服務器

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

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

嵌入式Linux開發工具

vim的使用

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

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

3、調試器gdb:斷點調試、查看內存、調試內存錯誤

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

5、shell編程(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復制 p粘貼 dd刪除 u恢復上一行

底行:查找 /str ?str

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

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

跳轉: n 文件名

文件保存 w r

sp+文件名 多文件編寫

gcc編譯器

<> 和“”區別:搜索路徑不同:前者在系統頭文件目錄《/usr/include》搜索,若沒有,就報錯

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

規范:<>包含系統頭文件 “”包含自定義頭文件

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

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

系統內的所有頭文件都在 vim/user/include/頭文件

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

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

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

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

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

  • 編譯選項

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

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

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

-S:進行編譯階段

-c:進行到匯編階段

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

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

庫文件

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

  • 調試器gdb(常用命名,調用內存錯誤)

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

extern:該函數在其它文件已經定義

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

庫文件:保存函數和變量,里面的函數和變量只能使用,但是看不到其實現

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

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

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

使用靜態庫和動態庫的區別(可執行文件的區別:)

  • 使用靜態庫編譯出來的執行文件>使用動態庫編譯出來的可執行文件大小 --影響內存的開銷

  • 使用靜態庫編譯出來的執行文件執行速度>使用動態庫編譯出來的可執行文件執行速度

  • 使用靜態庫編譯出來的執行文件升級<使用動態庫編譯出來的可執行文件升級

  • 使用靜態庫編譯出來的執行文件程序部署>使用動態庫編譯出來的可執行文件程序部署

庫文件的存放路徑:

系統運行所需要的庫文件:/lib

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

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

制作靜態庫:

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

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

例:ar -rcs libadd.a add.o

使用靜態庫:

-l:指定加載哪個靜態庫 -l庫名

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

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

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

工程管理器make

  • 什么是工程?

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

  • 工程管理器的作業:編譯多個源文件

gcc +所有源文件 -o 可執行文件 —>自動編譯

  • make依賴于Makefile文件;

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

  • Makefile語法:

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

格式:

目標:依賴

tab 命令

目標:最終生成的文件

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

命令:生成目標時,需要執行的命令

執行順序:

make:默認從第一個目標體執行

make+ 目標體:從對應的目標體執行

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

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

Makefile:

注釋: #

目標可以用$@代替

嵌入式linux開發工具怎么用

嵌入式linux開發工具怎么用

嵌入式linux開發工具怎么用

嵌入式linux開發工具怎么用

嵌入式linux開發工具怎么用

多級目錄下的Makefile:

  • 頂層Makefile:總控Makefile

  • 子目錄Makefile:功能Makefile

  • scripts目錄Makefile:頭文件Makefile

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

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

頭文件Makefile:定義一些變量

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

马边| 叙永县| 赤峰市| 潼南县| 赫章县| 民乐县| 共和县| 尼木县| 顺昌县| 常熟市| 侯马市| 湖北省| 濮阳县| 格尔木市| 龙川县| 黄骅市| 蒲江县| 河西区| 开封市| 合山市| 弥勒县| 祁连县| 平安县| 托里县| 高台县| 汉源县| 红河县| 揭西县| 儋州市| 原阳县| 芜湖县| 和林格尔县| 本溪市| 进贤县| 精河县| 陆河县| 克什克腾旗| 隆化县| 新宁县| 宜兴市| 康定县|