Linux課堂筆記(4)

2021-07-30 09:27:19 字數 750 閱讀 7034

gcc hello.c編譯

gcc -e hello.c使編譯過程停留在預處理之後編譯之前

gcc -e hello.c > hello.i使預處理產生的檔案生成到hello.i檔案內

預處理做的第一件事是:使標頭檔案展開(#include)

巨集替換也是在預處理階段處理

條件編譯

#ifndef

#else

#endif

預處理的處理使處理#號開頭的檔案

<>標頭檔案在系統的庫檔案中去找,找不到就報錯

""標頭檔案先在當前資料夾中找,找不到再去庫中找

gcc -c hello.c在編譯階段停下來,生成的編譯結果在hello.o中

gcc -s hello.c在彙編階段停下來,生成的編譯結果在hello.s中

gcc hello.c -o hello可以將生成的檔案重新命名為hello替換a.out

庫檔案:可以使用檔案裡包含的函式和變數,但是使用者看不到裡面具體的實現原始碼

linux下庫分為靜態庫和動態庫:

靜態庫:是在執行程式之前就已經加入到執行**中,成為程式的一部分來執行,字尾名:.a(編譯之前載入)

動態庫:是在執行程式啟動時載入到執行**中,字尾名:.so(編譯時載入)

靜態庫和動態庫的區別?

①執行效率是靜態庫的效率高

②生成的可執行檔案也是靜態庫的大

③檔案的部署:靜態庫更好部署

④程式的公升級:動態庫的公升級更方便(動態庫公升級只需替換庫檔案)

課堂筆記4

一 指標 在32位系統中,不管什麼型別的指標都佔4個位元組,例如int char double long 在定義時表示是指標變數,在使用時表示取值 int p,a p a p 3 或者int a 1 int p a p 3 以上兩種寫法都對,這樣a和 p的值都為3了 段錯誤 segmentation...

linux課堂筆記

rw r r 第一位有 d,l 表示普通檔案,d表示目錄,l表示連線檔案 快捷方式 接下來三位為一組,分別表示u所有者,g所屬組,o其他人。r讀,w寫,x執行 代表acl許可權 數字代表引用計數 開頭的檔案代表隱藏檔案 系統檔案 ls l簡稱ll就是ls的詳細資訊 建立目錄 mkdir make d...

機器學習課堂筆記4

1,機器什麼時候可以學習 2,為什麼機器可以學習 3,機器怎麼學習 4,機器怎麼樣才能學得更好 vc維 課堂筆記3中提到 break point 的概念 在資料量達到一定數量k的時候,假設集合h無法再shatter這k個資料,則成長函式mh的break point就是k。vc dimision k ...