目录
作为一名IT从业人员,开发质量的好坏和开发效率的高低与开发工具有着密切的联系,在实际项目开发中,会用到各种各样的开发工具。本文就将自己工作中遇到的各种开发工具做一个总结。
1.集成开发环境(IDE)
集成开发环境以一个可视化的界面让开发人员来进行编码,编译和调试。其底层也要调用相关的构建管理工具将项目代码进行管理,构建工具将管理的代码转变成相关的编译脚本,编译脚本解释器执行编译脚本,编译脚本中再调用相关的编译工具链(编译器,汇编器,链接器等)将代码变成二进制机器码,最终运行起来。
1.1常见的IDE
vs, vscode, qtcreator, eclipse, IntelliJ IDEA ...
2.构建管理工具
cmake:
一个开源的跨平台项目构建管理工具,vs和qtcreator都支持cmake作为项目构建管理工具。
qmake:
qtcreator默认的项目构建管理工具。
3.编译脚本解释器
编译脚本解释器是解析执行编译代码脚本的工具。
3.1常见的编译脚本解释器
(1)make
make是linux下常用的编译脚本解释器。其默认解释的脚本名为Makefile,可通过-file参数修改
(2)nmake
nmake可以认为是windows下的make
(3)ninja
谷歌在Android7以前使用make作为编译脚本解释器,但是谷歌嫌弃make的解释速度,所以就自己开发了ninija,和make解释器功能一样,其是用来代替make的。
(4)jom
windows下qt编程早期使用nmake作为编译脚本解释器,但是nmake没有make类似-j提高解释速度的参数,所以qt就自己开发了一个windows平台下高效的编译脚本解释器jom,用来取代nmake提高代码编译速度。
(5)gradle
Android开发代码构建工具,本质是去解析执行gradle脚本
(6)MSBuild
MSBuild和nmke功能大同小异,也是命令行自动编译解释器系统,基于XML语法规则,是Visual Studio中将源代码编译为程序的构建引擎,它为开发者提供自动化构建、性能测试和程序打包功能。同nmake相比,虽然msbuild是后起之秀,但感觉他相比前者更难于用手工编辑,如果纯粹是用ide维护这个文件当然没问题,但是却给需要手动配置的开发者制造了麻烦。需要阅读/输入冗长的xml tag。msbuild可能有带来很多创新,但是不得不遗憾得说他更加远离人类了。
cmake配置MSBuild用法:
mkdir build
cd build
cmake ..
MSBuild ALL_BUILD.vcxproj -p:Configuration=Release
4.编译,汇编,链接,调试工具
4.1 Linux平台
gcc / g++ : 其包含编译,汇编,链接功能
-E:预处理
-S:编译,生成汇编指令
-c:汇编,将汇编指令转为机器码
-o:链接,生成最终的可执行文件或者库文件
gdb:调试工具
4.2 Windows平台
cl:编译器
link:链接器
lib:生成lib工具
rc:资源编译工具
5. C++内存泄漏排查工具
(1)运行期间检查:gcc编译器提供Address Scanitizer(AScan)库,可以在运行过程中排查内存泄露。
(2)静态代码扫描:CppSafe
(3)windbg:windows下崩溃后通过分析dump文件检查内存泄露
(4)vargrand:linux下通过模拟CPU环境排查程序内存泄露的方法
(5)Dr memory:号称windows下的vargrand