vim編輯器是uinx/linux作業系統下標準的編譯器。
gcc/g++ 是gun 中 c 和 c++ 的編譯器
gcc [option | filename ]…
g++ [option | filename]…
options 是編譯器所需要的引數
filename 是檔名稱
linux下的 c 和 c++ 編譯器將程式編譯成乙個可執行檔案需要經過4個步驟
- 預處理
在預處理過程中,對源**檔案中的巨集展開 ,處理檔案包含,條件編譯,去注釋等。
gcc -e test.c -o test.i
linux下的**偵錯程式,因為 gcc/g++預設情況下生成的是release模式,但是如果要使用gdb除錯,則必須加上 -g 選項,生成乙個debug模式的檔案。
使用: gdb filename
- l 從主函式開始/從上次顯示的位置 依次向下顯示原始碼,每次顯示10行。
- l+函式名 列出該函式的原始碼
- r 執行程式
- b+行號 在該行設定乙個斷點
- n 單條執行(相當於vs下的f10)
- s 進入函式呼叫(相當於vs下的f11)
- info b 檢視斷點資訊
- p+變數 列印變數的值
- delete+斷電序號 刪除該斷點
- quit 退出gdb除錯
當我們要寫乙個工程的時候,其中的原始檔不計其數,makefile定義了一系列規則,對哪些檔案需要先編譯哪些檔案需要後編譯,哪些檔案需要重新編譯以及其他更複雜的操作進行了定義。
在編寫makefile檔案時,要知道工程中的哪些檔案需要編譯,以及如何編譯,需要哪些庫檔案以及如何建立這些庫檔案,如何產生最後我們需要的可執行檔案。
makefile
目標 : 依賴檔案
tab +命令 //必須跟tab 否則無法識別
在這裡我們利用乙個簡易計算器來編寫makefile檔案。
現在我們的main.c 需要依賴 add.h sub.h mul.h 以及庫函式(暫時不考慮)
完成編譯。
而 add.h,sub.h,mul.h分別依賴與其各自的.c原始檔編譯產生。
所以我們的 makefile
make一下
可以看到makefile自動完成了一些編譯過程。
但是此時,當我們再次make一次
可以看到make沒有進行編譯,並告訴我們此時的main是最新的。
這是因為makefile的工作原理,他會將裡面的依賴檔案的時間戳與目標檔案的時間戳進行比較,如果依賴檔案的時間戳小於目標檔案,則此時的依賴檔案並沒有進行任何改動,所以生成的原始檔也就不需要進行任何更改,提高了編譯效率。
此時我們隨便更新乙個依賴檔案的時間戳
make一下之後,因為只有乙個原始檔的改動,此時也只需要對該檔案產生的目標檔案,以及最終的可執行檔案進行重新編譯,大大提高了編譯效率。
我們也可以簡化我們的makefile檔案 代表
所有依賴
檔案@ 代表所有目標檔案
當我們虛要對工程進行清理,並重新編譯此時就需要加上clean
當我們需要將工程清空,make clean
.phony 的意思為偽目標,保證clean總是被正確的執行。
開發工具 環境
遠端拷貝 scp cdh4.tar.gz root 10.239.44.111 gerrit for code review git add git commit a git push origin head refs for master refs for master是臨時的分支 檢視配置 gi...
Linux 環境開發工具的使用
vim下有12種模式,分為6種基本模式和6種條件模式,在這裡,我們主要介紹3種模式 檢視所有模式,底行模式輸入 help vim modes 模式切換 正常模式進入插入模式 插入模式進入末行模式 插入模式進入正常模式 移動游標 複製貼上 刪除 剪下 替換 撤銷 更改 跳行末行命令集 gcc將我們所寫...
Linux開發工具
linux開發工具 vim gcc gdb make git github 文字編輯器 vim 功能最強大 1 使用 三種模式 命令列模式 插入模式 底行模式 vim 空格 檔名 例如vim hello.c 此時是命令列模式 無法插入資料 需要進入插入模式 按i或者a 退出插入模式 按esc 切換到...