0310 嵌入式學習筆記(2)

2021-10-25 20:07:09 字數 1693 閱讀 2778

查詢ip: ifconfig

vim hello.c

任意按a或i 進入插入模式

強制退出方式:先按esc 再輸入冒號:再輸入g! 強制退出 :q!

退出底行模式:wq 儲存退出 wq!強制儲存退出

插入模式按esc進入命令模式

命令模式下:(游標在某行)按yy為複製,接著按p為貼上,dd為刪除,u是撤銷操作(回頭)

多行操作:10yy 複製十行 5dd 刪除5行

按: 進入底行模式

然後輸入s/hello/hi 即意為將hello替換為hi : s/hello/hi

? ?但只能替換乙個,若要全部替換,即輸入 : s/hello/hi/g

gcc -e hello.c -o hello.i

gcc -s hello.i -o hello.s

編譯過程預處理檔案:

gcc -e hello.c -o hello.i

出現hello.i

這個程式,一步到位的編譯指令是:

gcc test.c -o test

實質上,上述編譯過程是分為四個階段進行的,

即預處理也稱預處理、編譯、彙編和連線。

2.1預處理

gcc -e test.c -o test.i 或 gcc -e test.c

可以輸出test.i檔案中存放著test.c經預處理之後的**。開啟test.i檔案,看一看,就明白了。後面那條指令,是直接在命令列視窗中輸出預處理後的**.

gcc的-e選項,可以讓編譯器在預處理後停止,並輸出預處理結果。在本例中,預處理結果就是將stdio.h 檔案中的內容插入到test.c中了。

2.2編譯為彙編**(compilation)

預處理之後,可直接對生成的test.i檔案編譯,生成彙編**:

gcc -s test.i -o test.s

gcc的-s選項,表示在程式編譯期間,在生成彙編**後,停止,-o輸出彙編**檔案。

2.3彙編(assembly)gcc -c test.s -o test.o

2.4連線(linking)

gcc聯結器是gas提供的,負責將程式的目標檔案與所需的所有附加的目標檔案連線起來,最終生成可執行檔案。附加的目標檔案包括靜態連線庫和動態連線庫。

對於上一小節中生成的test.o,將其與c標準輸入輸出庫進行連線,最終生成程式test

gcc test.o -o test

在命令列視窗中,執行./test, 讓它說helloworld吧!

#include

int main()

#include

#define max 100

int main()

{int num = max;

#ifndef max

printf("hi\n");

#else

printf("hello\n");

#endif

return 0;

root@jsetc-virtual-machine:/# gcc demo.c -o demo

root@jsetc-virtual-machine:/# ./demo

hello

gcc常用命令:

嵌入式linux c 學習筆記2

break 語句的用法 跳出switch語句塊,也可以來跳出迴圈體。素數的演算法 for i 3 i sqrt n i 2 if prime i for j i 1 j n i i prime j false 陣列下表的方式 count o 7 count count 2 count 這種表示方式,...

嵌入式學習筆記

嵌入式系統定義 技術角度以應用為中心,以計算機技術為基礎,軟硬體可裁剪,應用系統對功能,可靠性,成本,體積,功耗,和應用環境有特殊要求的專用計算機系統系統角度 設計完成複雜功能的硬體和軟體並使其緊密契合在一起的計算機系統 實時在規定的時間內,完成規定的動作 紅帽linux 基本命令 ls 檢視當前目...

嵌入式學習筆記

1 3 買了兩本書鳥哥的 鳥哥的linux私房菜基礎學習篇 第三版 和偉山東的 嵌入式linux應用開發完全手 冊 暫時看不懂 4 看了王剛的 linux系統移植 第二版 實現了windows和linux虛擬機器的檔案的共享 2014 11 02 主機可以ping通虛擬機器,虛擬機器ping不通主機...