久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Linux開發(fā)工具yum,、vim,、gcc/g 、gdb,、make/makefile(一些人把常用的軟件提前編譯好做成軟件包(可以理解成windows上的安裝包原文檔小括號)直接進(jìn)行安裝)

 山峰云繞 2022-06-22 發(fā)布于貴州

https://m.toutiao.com/is/Y5Phfp2/?=Linux開發(fā)工具 

    (一些人把常用的軟件提前編譯好做成軟件包(可以理解成windows上的安裝包原文檔小括號)直接進(jìn)行安裝)

一,、軟件包管理器yum

1.什么是軟件包

在Linux下安裝軟件, 通常的辦法是下載程序的源代碼、編譯,、得到可執(zhí)行程序,。但是這樣麻煩、不便于操作,,于是一些人把常用的軟件提前編譯好, 做成軟件包(可以理解成windows上的安裝包)放在一個服務(wù)器上, 通過包管理器可以很方便的獲取到這個編譯好的軟件包, 直接進(jìn)行安裝,。

軟件包和軟件包管理器, 就好比 'App' 和 '應(yīng)用商店' 這樣的關(guān)系,。

yum是Linux下非常常用的一種包管理器. 主要應(yīng)用在Fedora, RedHat, Centos等發(fā)行版上。

2.ping

由于yum是從服務(wù)器上獲取安裝包,,關(guān)于 yum 的所有操作必須保證主機(jī)(虛擬機(jī))網(wǎng)絡(luò)暢通,,網(wǎng)絡(luò)是否暢通可以通過 ping 指令驗(yàn)證。

3.查看所有軟件包

通過yum list可以看到所有的軟件包(軟件包有很多,,下圖只截取了其中一部分),。

通過與grep命令配合可以搜索出指定的軟件包。

4.安裝軟件包

通過sudo yum install xxx可安裝xxx軟件,,這里以lrzsz為例進(jìn)行安裝,。

5.卸載軟件包

卸載指令sudo yum remove xxx可卸載xxx軟件包,操作同上,。

二,、編輯器vim

0.vim的配置

原生的vim不便于使用,需要通過配置來讓它的使用更加方便,。

(1)配置文件

在目錄 /etc/ 下面,,有一個名為vimrc的文件,這是系統(tǒng)中公共的vim配置文件,,對所有用戶都有效,。而在每個用戶的主目錄下,都可以自己建立私有的配置文件,,命名為:.vimrc,,在這里配置的vim不會影響其他用戶。

進(jìn)入用戶的主工作目錄,,找到自己目錄下的.vimrc文件,,執(zhí)行 vim .vimrc,即可配置自己的vim,。

(2)配置vim

在其中輸入特殊的命令即可修改vim的選項(xiàng),,可以用下面三條命令進(jìn)行測試。

設(shè)置語法高亮: syntax on 顯示行號: set nu 設(shè)置縮進(jìn)的空格數(shù)為4: set shiftwidth=4

在shell命令行中執(zhí)行下面的指令(想在哪個用戶下讓vim配置生效, 就在哪個用戶下執(zhí)行這個指令. 強(qiáng)烈 '不推薦' 直接在 root 下執(zhí)行),,根據(jù)提示操作,,即可將vim變成一個c++編譯器。

curl -sLf gitee.com/HGtz2222/Vi… -o ./install.sh && bash ./install.sh

(原文地址:gitee.com/HGtz2222/Vi…

1.vim的模式

vim有許多模式,,在我使用的服務(wù)器上有七種基本模式和六種附加模式,。

本文只介紹常用的三種模式:命令模式(Normal mode)、插入模式(Insert mode),、底行模式(last line mode),。

2.模式間的轉(zhuǎn)變

先上一張圖表示三種模式的關(guān)系。

vim打開時(shí)默認(rèn)是命令模式,如下,。

此時(shí)如果輸入一般的代碼很可能沒有響應(yīng),,因?yàn)樵诿钅J较拢瑅im將輸入的內(nèi)容當(dāng)做命令看待,,如果我們按照代碼輸入,,就很難會出現(xiàn)命令,所以大多數(shù)時(shí)候沒有反應(yīng),。

此時(shí)如果按一下i就可以轉(zhuǎn)入插入模式,,左下角會變成下圖的樣子,表示進(jìn)入插入模式,,這時(shí)就可以在編輯器內(nèi)輸入內(nèi)容,。

這時(shí)再按Esc退回普通/命令模式。

如果想要退出vim,,則要在底行模式(shift+,;即輸入一個:)下輸入q退出。輸入w可以保存,,但配置過的vim編輯器會自動保存,,所以w可省略;如果用的是原生的vim(沒有配置過的),,就需要手動保存,。

3.命令模式(Normal mode)

(1)命令模式向插入模式轉(zhuǎn)換

命令模式向插入模式轉(zhuǎn)換可以輸入:a(光標(biāo)向后移動一個字符后進(jìn)入插入模式),i(直接進(jìn)入插入模式),,o(換行后進(jìn)入插入模式)。

(2)命令模式下常用的編輯命令

shift+^:光標(biāo)定位到當(dāng)前行的開頭shift+$:光標(biāo)定位到當(dāng)前行的末尾shift+g:光標(biāo)定位到當(dāng)前文本的最后一個位置gg:光標(biāo)定位到當(dāng)前文本的第一個位置n+shift+g:光標(biāo)定位到當(dāng)前文本第n行的開頭yy:復(fù)制光標(biāo)所在行n+yy:從光標(biāo)所在行開始,,復(fù)制下面n行的內(nèi)容p:粘貼內(nèi)容n+p:將內(nèi)容粘貼n行u:撤銷ctrl+r:恢復(fù)剛剛的撤銷dd:刪除光標(biāo)所在的行(這里是剪切,,也就是說刪除后可直接粘貼被刪除的內(nèi)容)n+dd:從光標(biāo)所在行開始,刪除下面n行的內(nèi)容shift+~:對光標(biāo)所在的位置進(jìn)行大小寫轉(zhuǎn)換w:以“單詞”為單位進(jìn)行跳轉(zhuǎn),,跳到下一個“單詞”的開頭(從左往右,從上到下)b:以“單詞”為單位進(jìn)行跳轉(zhuǎn),,跳到上一個“單詞”的開頭(從右往左,從下到上)e:以“單詞”為單位進(jìn)行跳轉(zhuǎn),跳到下一個“單詞”的結(jié)尾(從左往右,從上到下)(這里的“單詞”可能是一組字母,,也可能是符號)x:刪除光標(biāo)所在位置的內(nèi)容n+x:刪除從光標(biāo)開始n個位置的內(nèi)容shift+x:刪除光標(biāo)之前位置的內(nèi)容(不包括光標(biāo)所在位置)shift+n+x:刪除光標(biāo)之前x個位置的內(nèi)容(不包括光標(biāo)所在位置)r:輸入r之后再輸入內(nèi)容會將光標(biāo)所在位置的內(nèi)容進(jìn)行替換n+r:替換從光標(biāo)開始n個位置的內(nèi)容(每個位置的內(nèi)容都一樣)shift+r:進(jìn)入替換模式,,下面的操作全部是替換(按Esc返回命令模式)h、j,、k,、l:左、下,、上,、右(和方向鍵的功能相同,但是建議用字母而不是方向鍵,,因?yàn)榉较蜴I可能出現(xiàn)不兼容的問題)ctrl+b:下翻一頁ctrl+f:上翻一頁ctrl+u:下翻半頁ctrl+d:上翻半頁復(fù)制代碼

在命令模式下進(jìn)行文本編輯的效率非常高,,所以建議盡量在命令模式下編輯,。

4.插入模式(Insert mode)

命令模式按a/i/o進(jìn)如插入模式,插入模式與Windows下正常的文本編輯沒什么區(qū)別,,此處不再贅述,。

5.底行模式(last line mode)

命令模式shift+;進(jìn)入底行模式,,常用的命令如下:

set nu:設(shè)置行號set nonu:取消行號w:寫入(保存)w!:強(qiáng)制寫入(但也有可能寫入不成功)q:退出q!:強(qiáng)制退出!+其他命令:在底行模式下,,輸入!后即可執(zhí)行l(wèi)s,ll,gcc等命令,即不退出vim就看執(zhí)行命令行的命令復(fù)制代碼

vs命令+filename:分屏顯示,,若filename不存在,,則會新建。

通過ctrl+w+w可在多個選項(xiàng)卡之間切換,。

注意分屏不僅僅可以分兩個,,分屏可以分許多個。

底行模式下退出分屏?xí)r,,光標(biāo)在哪個文件就退出哪個文件,。

三、編譯器gcc/g++

gcc用來對C語言文件編譯,,g++用來對c++文件編譯,,選項(xiàng)幾乎是一樣的,下面以gcc為例,。

1.從源文件到可執(zhí)行文件

從一個.c為后綴的源文件到一個.exe為后綴的可執(zhí)行文件需要經(jīng)過下面四個步驟,。

(1)預(yù)處理(-E)

主要包括:頭文件展開、去注釋,、宏替換,、條件編譯。 在Linux中可以通過gcc的–E選項(xiàng)來讓源文件在預(yù)處理結(jié)束后停止并生成同名的.i后綴文件,。

(2)編譯(-S)

檢查代碼的規(guī)范性,、是否有語法錯誤等,以確定代碼實(shí)際要做的工作,在檢查 無誤后,把C語言代碼翻譯成匯編語言,。 在Linux中可以通過gcc的–S選項(xiàng)來讓源文件在編譯結(jié)束后停止并生成同名的.s后綴文件,。

(3)匯編(-c)

生成機(jī)器可識別代碼,把編譯階段生成的.s文件轉(zhuǎn)成目標(biāo).o文件,,轉(zhuǎn)化結(jié)束后,,文件是二進(jìn)制目標(biāo)文件。 在Linux中可以通過gcc的–c選項(xiàng)來讓源文件在匯編結(jié)束后停止并生成同名的.o后綴文件,。

(4)鏈接(無選項(xiàng))

將代碼中庫函數(shù)的調(diào)用和庫中庫函數(shù)的實(shí)現(xiàn)關(guān)聯(lián)起來,。

這里要介紹一個概念:函數(shù)庫 函數(shù)庫一般分為靜態(tài)庫和動態(tài)庫兩種。

靜態(tài)庫

鏈接時(shí)把庫文件的代碼全部加入到可執(zhí)行文件中,因此生成的文件占用的空間比較大,,但在運(yùn)行時(shí)也就不再需要庫文件了,,這樣程序的可移植性強(qiáng)。 靜態(tài)庫后綴名一般為.a,。

動態(tài)庫

鏈接時(shí)不把庫文件的代碼加入到可執(zhí)行文件中,,而是在程序執(zhí)行時(shí)由鏈接文件加載庫,生成的文件體積小,、速度快,,但可移植性差。 動態(tài)庫一般后綴名為.so,。

gcc在鏈接時(shí)默認(rèn)使用動態(tài)庫,。

2.常用選項(xiàng)

除了上面的-E、-S,、-c選項(xiàng)外,,下面還有一些常用選項(xiàng)。

-static:此選項(xiàng)對生成的文件采用靜態(tài)鏈接 -O0,、-O1,、-O2、-O3:編譯器優(yōu)化選項(xiàng)的4個級別,,-O0表示沒有優(yōu)化,,-O3優(yōu)化級別最高 -w:不生成任何警告信息。 -Wall:生成所有警告信息,。 -o+filename:將生成的文件命名為filename

四,、調(diào)試器gdb

下面以一個簡單的從1加到100的代碼演示調(diào)試,源文件生成的可執(zhí)行文件為Mytest,。

代碼如下:

直接gdb+被調(diào)試文件名進(jìn)入調(diào)試,,如下

但最后提示沒有調(diào)試信息。這里是因?yàn)樵贑entos 7 gcc中默認(rèn)生成的可執(zhí)行程序是release版本的,,不可被調(diào)試。通過編譯時(shí)添加-g選項(xiàng)讓程序成為debug版本,。

1.顯示代碼list/l

2.運(yùn)行r

3.斷點(diǎn)b,、查看斷點(diǎn)info、刪除斷點(diǎn)d

4.逐過程n(不進(jìn)入函數(shù)),、逐語句s(進(jìn)入函數(shù))

5.臨時(shí)查看變量的值p

6.添加查看display

7.取消查看undisplay

8.跳轉(zhuǎn)until

9.結(jié)束函數(shù)finish

10.跳轉(zhuǎn)到下一斷點(diǎn)c

11.退出調(diào)試quit

五,、自動化構(gòu)建:make+makefile

1.背景

一個工程中的源文件不計(jì)數(shù),其按類型,、功能,、模塊分別放在若干個目錄中,makefile定義了一系列的規(guī)則來指定,哪些文件需要先編譯,,哪些文件需要后編譯,,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作,。 makefile帶來的好處就是——“自動化編譯”,,一旦寫好,只需要一個make命令,,整個工程完全自動編譯,,極大的提高了軟件開發(fā)的效率。 make是一條命令,,makefile是一個文件,,兩個搭配使用,完成項(xiàng)目自動化構(gòu)建

2.依賴關(guān)系,、依賴方法

舉例如下:

makefile中一行是依賴關(guān)系,,緊跟的一行是依賴方法。上面從一個.c文件到一個.exe文件經(jīng)歷的依賴關(guān)系和依賴方法寫全后如下,。

mytest依賴test.o經(jīng)過gcc鏈接得到,,test.o依賴test.s經(jīng)過gcc -c匯編得到,test.s依賴test.i經(jīng)過gcc -S編譯得到,,test.i依賴test.c經(jīng)過gcc -E預(yù)處理得到,。 (冒號左邊是得到的文件,冒號右邊是被依賴的文件)

make后就可以得到所有需要的文件,。

雖然這些過程在這個場景下可以gcc一步搞定,,但是如果有其它多個文件需要處理,這么多行的指令寫進(jìn)makefile后只需一個make即可全部執(zhí)行,,效率有很大的提高,。

3.項(xiàng)目清理

可以看到上面產(chǎn)生了許多文件,如果一個個清理又會很麻煩,,在makefile中 加入clean選項(xiàng)便可像make那樣直接清除某些文件,。

上面的.PHONY是偽目標(biāo),這樣寫表示clean總是被執(zhí)行,。

4.宏替換

$@:依賴關(guān)系中的目標(biāo)文件(冒號左邊的文件)

$^:依賴關(guān)系中的依賴文件列表(冒號右邊的所有文件)

$<:依賴關(guān)系中的一個依賴文件

將makefile修改為如下宏替換后的結(jié)果,,這樣當(dāng)依賴文件或目標(biāo)文件改變時(shí),依賴方法不需要改變,。

仍能正常運(yùn)行,。

感謝閱讀,如有錯誤請批評指正


作者:山舟
鏈接:
https:///post/7083141631775342606

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多