在Ubuntu下搭建C/C++编程环境,综合起来说就是vim+gcc+gdb
。其中vim用于文本编辑,gcc用于程序编译,gdb用于代码调试。
在Terminal中执行sudo apt-get install build-essential,即可安装必要的库函数。
文本编辑
Ubuntu自带的为vi编辑器,vim是vi的升级版,兼容vi。
sudo apt-get install vim
vim有三种模式
1.普通模式
当vim打开的时候就直接进入普通模式,在普通模式下可以执行删除、复制等指令
a , o ,i
2.插入模式
插入模式可以编辑文本
Esc 键进入普通模式
3.命令模式
普通模式输入“:”(冒号)进入命令模式,此时在文本界面最下面一行可以输入相关命令,可以设置文本的保存退出方式等
普通模式常用下指令
i
→ Insert 模式,按 ESC
回到 Normal 模式.x
→ 删当前光标所在的一个字符。:wq
→ 存盘 + 退出 (:w
存盘, :q
退出) (陈皓注::w 后可以跟文件名)dd
→ 删除当前行,并把删除的行存到剪贴板里p
→ 粘贴剪贴板hjkl
(强例推荐使用其移动光标,但不必需) →你也可以使用光标键 (←↓↑→). 注: j
就像下箭头。:help
→ 显示相关命令的帮助。你也可以就输入 :help
而不跟命令。(陈皓注:退出帮助需要输入:q)
有几张不同角度的cheat sheet,参考链接https://blog.csdn.net/weixin_35477207/article/details/78165411
vim学习连接:
https://vimjc.com/
https://coolshell.cn/articles/5426.html
https://vim-adventures.com/
https://blog.csdn.net/lsacaner/article/details/92800900
对于Windows上做C++开发的用户来说,vs为他们做了大量的工作,语法高亮、自动缩进、智能提示等等,当你happy的使用vs时,请记住一点,这是一个收费软件,虽然在我大中华普遍都在使用微软的盗版软件,但作为程序员我们心里应该知道这是不对的行为,然后再去——等等,我们今天讨论的不是这个话题,我们要说的是Linux下的免费软件Vim!
我将本文需要安装的插件和配置文件都放在了github上,如果你不想大费周折的了解每个插件的安装方式,可以直接下载所有插件即可使用,项目地址https://github.com/handy1989/vim,可以按照如下命令备份并一次安装所有插件(注意,从git上下载的vim目录下都是隐藏文件,ls -a
可以查看)
git clone https://github.com/handy1989/vim.git
mv vim/.vimrc ~/
mv vim/.vim ~/
sudo apt-get install ctags
原文链接:https://www.linuxidc.com/Linux/2016-06/132262.htm
GCC(GNU Compiler Collection)是一组编译工具的总称,支持多平台、多语言源文件到可执行文件的编译与生成。其中也包括gcc(C编译器)和g++(C++编译器)。
编译单个文件为可执行文件:
g++ -Wall -W hello.cpp -o hello
编译多个文件为可执行文件:
g++ -Wall -W main.cpp hello_fun.cpp -o newhello
可以用gcc选项定义宏,-DNAME会定义一个名为NAME的宏。如g++ -Wall -DTEST dtest.cpp
,定义了名为TEST的宏。定义的宏会对代码产生影响。
也可以为宏定义值,-DNAME=VALUE。如g++ -Wall -DNUM=100 dtestval.cpp
,g++ -Wall -DNUM="2+2" dtestval.cpp
,g++ -Wall -DMESSAGE="\"Hello,World!\"" dteststr.cpp
。在代码中把宏用括号括起来是好习惯。
对于较大的工程,如果还像前文一样写命令行就太痛苦了。而使用makefile可以管理整个工程的编译规则,之后用一个make命令就可自动编译,相对方便很多。
makefile文件名应为Makefile
或makefile
当处理较大型的项目时,手动书写makefile就比较痛苦,这时用来用来自动化自动化工具makefile的自动化工具就是CMake。不过天下哪有那么便宜的事,它也是要写自己的CMakeLists.txt的。
推荐书籍《CMake实践》《Mastering CMake》和官网帮助。
简介
CMake是一个跨平台的自动化建构系统,它是用一个名为CMakeLists.txt的文件来描述构建过程,可以产生标准的构建文件,如Unix的makefile或Windows Visual Studio的projects/workspaces。
文件CMakeLists.txt需要手工编写,也可以通过编写脚本进行半自动的生成。
在Linux平台下使用CMake生成makefile并编译的流程如下:
$sudo apt-get install cmake
。如果想要其Qt图形界面另需安装sudo apt-get install cmake-qt-gui
。一般不需要,在Ubuntu系统上用ccmake就可以了。cd
将当前目录设为生成目标目录,执行命令ccmake srcdir
(文字界面)或cmake -i
(交互命令行),如果想使用Qt图形界面使用cmake-gui
。make clean
。cmke学习参考:https://www.cnblogs.com/wainiwann/p/6497791.html
gdb是一个用来调试C和C++程序的功能强大的调试器,能在程序运行时观察程序的内部结构和内存使用情况。
gdb主要提供以下功能:
为使gdb能正常工作,必须在程序编译时包含调试信息。即-g
选项。
gdb test
run
。where
。list
。backtrace
。next
或step
。print var
。break 8
。set variable
修改变量值。continue
。看结果是否正确。quit
。
修改CMakeList.txt 加入
SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
原因是CMake 中有一个变量 CMAKE_BUILD_TYPE ,可以的取值是 Debug Release RelWithDebInfo >和 MinSizeRel。
当这个变量值为 Debug 的时候,CMake 会使用变量 CMAKE_CXX_FLAGS_DEBUG 和 CMAKE_C_FLAGS_DEBUG 中的字符串作为编译选项生成 Makefile;
重新编译
cmake -DCMAKE_BUILD_TYPE=Debug Path
参考链接:https://blog.csdn.net/gdp12315_gu/article/details/45063479
gdb调试时,程序路径后跟的参数为gdb的参数,程序的参数需在运行时输入:
gdb test
run par1 par2
gdb学习链接:
https://www.cnblogs.com/life2refuel/p/5396538.html
http://blog.sina.com.cn/s/blog_a573f7990101k58w.html
参考文献:
https://www.cnblogs.com/BlueMountain-HaggenDazs/p/6426465.html
https://blog.csdn.net/weixin_35477207/article/details/78165411