
導讀:越來越多的程式員在Linux下進行C/C++的開發。本文以CentOS 7為例,教你快速搭建一個vi + gcc/g++ + Make + valgrind的開發環境。
本文字數:1500,閱讀時長大約:10分鐘
一、YUM源配置
本文假設你已經安裝好了一個 Linux 作業系統,關于如何安裝 Linux,可以參考《虛拟機安裝 Linux 最完整攻略》
下載下傳阿裡的YUM源:
https://mirrors.aliyun.com/repo/
将/etc/yum.repos.d 目錄下所有.repo檔案都删除,然後把剛才下載下傳的阿裡源配置檔案儲存到該目錄下。
二、安裝gcc/g++
運作安裝指令
yum install -y gcc gcc-c++
安裝成功後,試一下gcc和g++是否安裝成功
三、安裝Git
通過Git我們可以下載下傳安裝很多開源的軟體。關于Git是什麼,可以參考我之前的文章《一篇文章快速搞懂什麼是GitHub》,這裡不再過多介紹。
運作安裝指令
yum install -y git
四、安裝Vim
(1)安裝 Vim
yum install -y vim
(2)建立配置檔案
在預設目錄下建立檔案 ~/.vimrc,儲存以下内容
- 顯示行号:set number
- 打開文法高亮:syntax on
- Tab 大小:set tabstop=4
- 縮進大小:set shiftwidth=4
儲存成功後,試着用Vim寫一段代碼,發現已經可以顯示行号、文法高亮提示、并且tab縮進改為4個空格了。
(3)安裝 Vundle
Vundle是Vim bundle的縮寫,是一個Vim插件的管理器。通過Vundle我們可以安裝很多有用的插件。具體可以查閱一下GitHub上的資訊:
https://github.com/VundleVim/Vundle.vim#about
運作下面的指令下載下傳Vundle
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
将下面的内容追加到~/.vimrc中
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
call vundle#end()
filetype plugin indent on
啟動Vim,運作指令:
:PluginInstall
這樣Vundle就安裝成功了。
(4)設定括号、引号比對
目前左右兩個花括号或者圓括号還都需要你手動輸入,如果我們想
- 輸入左括号補全右括号
- 輸入左引号自動補全右引号
那麼我們需要用Vundle來安裝一個delimitMate插件。
在.vimrc檔案中添加一行 Plugin 'Raimondi/delimitMate'
然後啟動Vim再次運作 :PluginInstall 指令。寫入一段代碼,看一看括号和引号的自動比對功能是不是已經實作了。
(5)自動補全
自動補全是代碼編輯器中最重要的特性,目前Vim用的比較多的插件有YCM(YouCompleteMe)和Coc。具體的安裝步驟可以參見GitHub上的說明:
YCM: https://github.com/ycm-core/YouCompleteMe
Coc: https://github.com/neoclide/coc.nvim
五、編寫Makefile
Makefile非常重要,它定義了一系列規則,哪些檔案需要編譯,編譯的順序,以及檔案之間的依賴關系。會不會寫Makefile反映了一個程式員是否具備完成大型項目的能力。我下面寫一個簡單的Makefile,假如我們有以下幾個檔案:
- Cat.cpp, Cat.h:定義了Cat類
- test.cpp:包含了main()函數,并且使用了Cat類
于是我們建立一個Makefile,内容如下。
注意每個指令行前需要是一個tab,不能有其他的空格,是以我們手動把Vim的tabstop改為8。
每一段的第一行表示檔案的依賴關系,第二行表示使用到的指令。比如test檔案是由Cat.o和test.o檔案生成的;生成的指令是
g++ -Wall Cat.o test.o -o test
最後一段clean,表示清空目标檔案所使用的指令。
Makefile編寫好以後,編譯項目隻需要使用make指令,清空目标檔案可以使用 make clean 指令:
六、使用Valgrind檢測記憶體洩漏
C/C++程式需要檢測是否有記憶體洩漏。Linux下最常用的一個工具是Valgrind。
首先安裝:
yum install -y valgrind
然後編寫一段有記憶體洩露的代碼來測試一下,
test.c
使用gcc,編譯,注意要使用 -g -Og 選項來幫助Valgrind調試
gcc -g -Og -std=c99 test.c -o test
然後使用Valgrind 指令來檢測記憶體洩漏:
valgrind --leak-check=full ./test
得到如下結果,可以看出有明顯的記憶體洩漏,并且是有test.c中第五行代碼引起的。
我們将代碼做一下修改,将動态配置設定的記憶體釋放掉:
重新編譯,并再次運作valgrind指令檢測,得到結果如下:
可以看到這次再沒有記憶體洩漏了。
七、總結
本文示範了在CentOS環境下,如何利用YUM、Git、Vundle等工具搭建 Vim + gcc/g++ + Make + valgrind的開發環境,希望對于在Linux下用C/C++程式設計的朋友們有一定的幫助。
推薦閱讀:
一篇文章快速搞懂什麼是GitHub
虛拟機安裝 Linux 最完整攻略
Vi 和 Vim 的使用
擷取知識幹貨、增加面試經驗、了解職場人生
歡迎關注微信公衆号