经历了折腾各种IDE(VSLinux、Qt Creator、CLion、Eclipse CDT、Code::Blocks)后,我放弃了使用IDE开发的想法,采用最原始的方式:
编译:GCC
编辑:VIM
调试:GDB
版本管理:Git
项目管理:CMake
全都是命令行工具,在使用期间,遇到了以下问题,在这里记录下,做个备忘。
多个GCC版本并存问题:
系统自带的GCC版本比较低,我从其他系统中下载了新版本的GCC。比如放在/mnt/gcc8目录下。
在执行gcc时,需要额外指定一个参数 -sysroot=/mnt/gcc8 。否则会报链接错误,提示找不到库。
调试问题:
随着对GDB的深入了解,发现用它调试程序也还凑合。它有个TUI模式。能够在字符界面上显示四个窗口:源代码窗口、反汇编窗口、寄存器窗口、命令窗口。而且它还支持快捷键。使用方式跟IDE也差不多。
Makefile
用CMake管理项目比直接用makefile要方便的多。简答的几行文字,就能创建一个可执行程序或库,还能自动解决依赖库路径问题。
源代码版本控制
尝试过github、git@oschina和coding.net。最让人不爽的是,网速慢,频繁输入帐号密码。不厌其烦,最后选择在本地搭建一个git仓库,无帐号无密码。省心多了。
VIM学习曲线
不得不承认学习VIM挺难的。它的使用方式应该是为字符界面做优化了,对于适应了图形界面的人来说,用VIM得先改掉之前的习惯。但是在Linux下,VIM编辑文本是最佳选择:通吃图形界面、字符界面和SSH。在尝试了各种方式(SMB、FTP、VNC)后,感觉还是在Linux下用Vim编辑代码最省心。学Vim关键不要心急,摆好心态,慢悠悠来,你会发现Vim还挺好用的。
依赖库编译问题
调试程序时,有时候想跟踪到依赖库的代码里看开,这时需要编译依赖库。根据个人经验,最好用rpmbuild(这是fedora的工具,其他distor应该也有对应的工具)去编译。rpmbuild最大的优点就是它能保证编译出来的库和系统中安装的库是一模一样的(编译选项,补丁,配置等)。另外,它还特别方便,只需要简单的几个命令,就能全自动编译,无需人工干预。