天天看點

Linux快速搭建C/C++開發環境

Linux快速搭建C/C++開發環境

導讀:越來越多的程式員在Linux下進行C/C++的開發。本文以CentOS 7為例,教你快速搭建一個vi + gcc/g++ + Make + valgrind的開發環境。

本文字數:1500,閱讀時長大約:10分鐘

一、YUM源配置

本文假設你已經安裝好了一個 Linux 作業系統,關于如何安裝 Linux,可以參考《虛拟機安裝 Linux 最完整攻略》

 下載下傳阿裡的YUM源:

https://mirrors.aliyun.com/repo/

Linux快速搭建C/C++開發環境

将/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,儲存以下内容

Linux快速搭建C/C++開發環境

  • 顯示行号:set number
  • 打開文法高亮:syntax on
  • Tab 大小:set tabstop=4
  • 縮進大小:set shiftwidth=4

儲存成功後,試着用Vim寫一段代碼,發現已經可以顯示行号、文法高亮提示、并且tab縮進改為4個空格了。

Linux快速搭建C/C++開發環境

(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

Linux快速搭建C/C++開發環境

 啟動Vim,運作指令:

:PluginInstall

這樣Vundle就安裝成功了。

(4)設定括号、引号比對

目前左右兩個花括号或者圓括号還都需要你手動輸入,如果我們想

  • 輸入左括号補全右括号
  • 輸入左引号自動補全右引号

 那麼我們需要用Vundle來安裝一個delimitMate插件。

 在.vimrc檔案中添加一行 Plugin 'Raimondi/delimitMate'

Linux快速搭建C/C++開發環境

 然後啟動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,内容如下。

Linux快速搭建C/C++開發環境

注意每個指令行前需要是一個tab,不能有其他的空格,是以我們手動把Vim的tabstop改為8。

每一段的第一行表示檔案的依賴關系,第二行表示使用到的指令。比如test檔案是由Cat.o和test.o檔案生成的;生成的指令是

g++ -Wall Cat.o test.o -o test

最後一段clean,表示清空目标檔案所使用的指令。

Makefile編寫好以後,編譯項目隻需要使用make指令,清空目标檔案可以使用 make clean 指令:

Linux快速搭建C/C++開發環境

六、使用Valgrind檢測記憶體洩漏

C/C++程式需要檢測是否有記憶體洩漏。Linux下最常用的一個工具是Valgrind。

首先安裝:

yum install -y valgrind

然後編寫一段有記憶體洩露的代碼來測試一下,

test.c

Linux快速搭建C/C++開發環境

使用gcc,編譯,注意要使用 -g -Og 選項來幫助Valgrind調試

gcc -g -Og -std=c99 test.c -o test

然後使用Valgrind 指令來檢測記憶體洩漏:

valgrind --leak-check=full ./test

得到如下結果,可以看出有明顯的記憶體洩漏,并且是有test.c中第五行代碼引起的。

Linux快速搭建C/C++開發環境

我們将代碼做一下修改,将動态配置設定的記憶體釋放掉:

Linux快速搭建C/C++開發環境

重新編譯,并再次運作valgrind指令檢測,得到結果如下:

Linux快速搭建C/C++開發環境

可以看到這次再沒有記憶體洩漏了。

七、總結

本文示範了在CentOS環境下,如何利用YUM、Git、Vundle等工具搭建 Vim + gcc/g++ + Make + valgrind的開發環境,希望對于在Linux下用C/C++程式設計的朋友們有一定的幫助。

推薦閱讀:

一篇文章快速搞懂什麼是GitHub

虛拟機安裝 Linux 最完整攻略

Vi 和 Vim 的使用

擷取知識幹貨、增加面試經驗、了解職場人生

歡迎關注微信公衆号

Linux快速搭建C/C++開發環境