linux編譯學習

2021-08-09 17:56:05 字數 1731 閱讀 6300

1 使用echo命令檢視單個環境變數。例如: 

eo $path 

2 使用env檢視所有環境變數。例如: 

env 

3 使用set檢視所有本地定義的環境變數。

4.so檔案:動態庫

a檔案: 靜態庫

exe檔案:可執行程式(linux下以檔案屬性來標示是否是可執行檔案,與字尾名無關)

我們用gcc編譯程式時,常常會用到「-i」(大寫i),「-l」(大寫l),「-l」(小寫l)等引數,下面做個記錄:

例:gcc -o hello hello.c   -i/home/hello/include   -l/home/hello/lib    -lworld

1上面這句表示在編譯hello.c時:

-i /home/hello/include,表示將/home/hello/include目錄作為第乙個尋找標頭檔案的目錄,尋找的順序是:/home/hello/include–>/usr/include–>/usr/local/include

也就是指定優先查詢的目錄,找不到的話查詢預設目錄

-l /home/hello/lib,表示將/home/hello/lib目錄作為第乙個尋找庫檔案的目錄, 尋找的順序是:/home/hello/lib–>/lib–>/usr/lib–>/usr/local/lib

同上,也是指定優先查詢的目錄

-l word , 表示**尋找動態鏈結庫檔案**libword.so(也就是檔名去掉字首和字尾所代表的庫檔案)

如果 加上編譯選項-static,表示尋找靜態鏈結庫檔案,也就是libword.a

對於第三方提供的動態鏈結庫(.so),一般將其拷貝到乙個lib目錄下(/usr/local/lib),或者使用-l來指定其所在目錄, 然後使用-l來指定其名稱

5.gcc -g -o -c

g 生成gdb

o 後面跟著執行檔名稱

c  只生成obj不生成exe ,只編譯不連線

-dl   如果使用動態鏈結庫增加 -ldl 庫  

-l***    l是lib的意思 ,後面跟著庫名

gcc -g -o add add.c -lm -llua -ldl

--資料庫

for update加鎖只有在commit或rollback後才能自動解鎖.所以儲存過程中的最後處理一定是commit或rollback

6.int  轉負數 二進位制完全取反  在加1  就是負數

7.在linux下刪除檔案及資料夾(rm)

刪除目錄、檔案 rm(remove)

功能說明:刪除檔案或目錄。

語  法:rm [-dfirv][--help][--version][檔案或目錄...]

補充說明:執行rm指令可刪除檔案或目錄,如欲刪除目錄必須加上引數」-r」,否則預設僅會刪除檔案。 

參  數:

-d或–directory  直接把欲刪除的目錄的硬連線資料刪成0,刪除該目錄。 

-f或–force  強制刪除檔案或目錄。 

-i或–interactive  刪除既有檔案或目錄之前先詢問使用者。 

-r或-r或–recursive  遞迴處理,將指定目錄下的所有檔案及子目錄一併處理。 

-v或–verbose  顯示指令執行過程。 

linux刪除目錄很簡單,很多人還是習慣用rmdir,不過一旦目錄非空,就陷入深深的苦惱之中,

現在使用  rm -rf  命令即可。

gdb列印完整字串

set print element 0

Linux核心學習編譯流程

一 前言 linux核心學習 1 安裝vmware虛擬機器或者virtualbox,再安裝發行版本linux 2 www.kernel.org,挑選乙個核心版本 3 進行解壓並編譯 4 自己寫一些模組 比如說可以去嘗試解一些官網的bug 如下圖所示 下面我們就可以看到還有很多核心bug未解決的問題還...

學習 linux核心的重新編譯

linux發行版 lsb release a lsb version n a distributor id manjarolinux description manjaro linux release 17.1.7 codename hakoila kernel cat proc version 先...

Linux學習筆記五 gcc程式編譯

linux學習筆記五 gcc程式編譯 linux下的gcc gnu c compiler 是由gnu推出的功能十分強大的平台編譯器,它可在多種硬體平台上編譯出可執行程式,對於gcc的學習與掌握非常必要,因為gcc將會伴隨我們整個的linux學習及開發過程。gcc可以降c,c 及匯程式設計序編譯鏈結成...