嵌入式linux的開發工具-vim、gcc、gdb、make
vim(文字編輯器):學會使用和如何配置vim
gcc(編輯器):學會製作動態庫和靜態庫及使用和區別;
gdb(偵錯程式):設定斷點、單步執行、除錯記憶體錯誤;
make(工程管理器):編寫makefile檔案;
linux文字編輯器:vim–功能最強大文字編輯器—擺脫滑鼠
vi–vim–**im:命令模式(nyy\p\ndd\u)、插入模式(i\a)、底行模式(shift+:)
如何配置vim?etc\vim\vimrc
ide(整合開發環境):vscode
編譯器:gcc (gnu cc)
1、gcc特點(gnu工具、交叉編譯器)
什麼是交叉編譯器?
原始檔到可執行檔案需要經歷哪幾個步驟?
預處理、編譯、彙編、連線
(pc:x86)
hello.c gcc hello.c a.out./a.out–>linux手機(arm)
交叉編譯:在當前cpu平台下編譯出在其他cpu平台下可執行的**
預處理:標頭檔案展開、巨集替換、條件編譯-e -i -d
編譯:將預處理檔案編譯成彙編檔案.s -s
彙編:將彙編檔案編譯生成目標檔案.o -c
連線:建立符號表–可執行檔案a.out
-o 重新命名可執行檔案
<>:搜尋路徑在系統頭檔案目錄(usr/include)
" ":搜尋路徑先在當前目錄查詢,找不到再到系統的頭檔案目錄查詢。
一、gcc常用編譯選項:
-e -s -c -o -i -d
-wall -w
-o1 -o2 -o3
二、靜態庫.a和動態庫的製作.so
1、什麼庫檔案?儲存函式和變數(倉庫)特點:儲存的函式與變數,只能使用但不能看到其實現。
2、linux庫檔案:
靜態庫:在編譯階段載入;(將庫檔案的**載入到原始檔)
動態庫:在執行時載入;
生成的可執行檔案存在區別(優缺點)
1)使用靜態庫生成的可執行檔案大於動態庫生成的可執行檔案(程式執行占用記憶體較多)
2)使用靜態庫生成的可執行檔案難以公升級;使用動態庫生成的可執行檔案易於公升級;
3)使用靜態庫生成的可執行檔案執行速度快;使用動態庫生成的可執行檔案執行速度慢;
4)使用靜態庫可執行檔案裡的**容易部署;使用動態庫可執行檔案裡的**難以部署;
3、linux庫檔案存放路徑:
/lib:存放的系統執行所需要的庫;
/usr/lib:存放的是程式執行所需要的庫;
如何製作靜態庫?
1、將需要儲存的函式所在的檔案編譯生成目標檔案 gcc -c add.c—>add.o
2、靜態庫的製作工具:ar
ar rcs(不存在就建立,存在就更新) 庫名 目標檔名
ar rcs libadd.a add.o
3、使用
gcc 原始檔 -l庫名 -l庫存放的路徑
gcc main.c -ladd -l -o add
如何製作動態庫?
gcc -shared -fpic 原始檔 -o libcal.so
gcc -shared -fpic add.c sub.c -o libcal.so
使用:cp libcal.so/usr/lib
gcc main.c -lcal
gcc main.c./libcal.so -o cal
9 1課堂筆記
課堂筆記 一 1 file類的構造方法 public file string pathname 根據parent抽象的路徑名和child路徑名字串建立乙個新的file物件。pathname指路徑名字串,parent父抽象路徑名 父抽象路徑名既可以是字串,也可以是file物件 public file ...
9 7課堂筆記
課堂筆記 執行緒的同步 為什麼需要 執行緒同步 執行緒間共享 和資料可以節省系統開銷,提高程式執行效率,但同時也導致了資料的 訪問衝突 問題,如何實現執行緒間的有機互動 並確保共享資源在某些關鍵時段只能被乙個執行緒訪問,即所謂的 執行緒同步 synchronization 就變得至關重要。臨界資源 ...
2018 3 8課堂筆記
選擇器的優先級別可以如下方式計算 a 行內樣式權重1000,b id選擇器權重100 c 類 偽類和屬性選擇器權重10,d 標籤選擇器和偽元素選擇器權重為1 對於網頁中背景的修改 都是以background開頭的,例如 background position背景的定位 background size...