• 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/

    将/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 的使用

     

     

    获取知识干货、增加面试经验、了解职场人生

    欢迎关注微信公众号

     


  • 相关阅读:
    C#命名约定:PascalCase和camelCase
    Windows8 App 四大名著完整本 隐私保护声明
    C#-编码习惯
    [转]C#之Console.Write()和Console.Read()及Console.Readline()的问题
    通过JavaScript动态输入计算
    在VS2008中加入ExtJS智能提示—>(方法一)
    在VS2008中加入ExtJS智能提示—>(方法二)
    (一)javascript面向对象:(1)类
    上证指数波浪分析2013/03/12
    Springsecurity源码Filter之HeaderWriterFilter(十二)
  • 原文地址:https://www.cnblogs.com/jfzhu/p/13467226.html
Copyright © 2020-2023  润新知