作为程序员的你们,在学习一门新语言时,是不是首先最重要的应该就是搭建开发环境,打出第一个hello word 了吧?
环境搭建成功,就感觉已经学会了一半,有没有朋友跟我一样的感觉呢?
最近我们公司想开发一款基于大疆无人机调用PSDK的项目,在妙算3上应用部署,由于大疆SDK的api以及示例都是基于C和C++,而且还要打成DPK(大疆妙算3部署,也是基于C++)但是我们团队都是做java开发的,并不懂C和C++,,虽然刚开始我们认为用python也可以开发,因为python简单、上手快,团队也大多都有点python的基础,,但是使用python又怕后续在编译的时候出现问题,而且python依赖封装库,功能可能受限,另外我们对功能的效率有很高的要求,而C++ 是编译型语言,执行效率远高于 Python,所以最终团队决定还是使用C++,项目前期一起学习C++。
在决定选择C++后,首当其冲的第一步就是搭建开发环境了,那么选择什么样的开发工具成了首先要考虑的问题了,由于我们都是java开发程序员,平时开发都是在windows上使用idea开发,所以在windows上搭建开发环境是首选,虽然开发C++后端程序在linux系统上开发最好因为C++需要进行编译,网上看到很多大神都是直接用vi vim在linux上开发c++,搞算法的也是在ubuntu的可视化桌面上开发,习惯了java windows开发的我显然是不合适的,而且我们也没有多的电脑去装个liunx系统。所以还是选在在windows上搭建C++开发环境。
开发工具我们主要考虑了当前比较流行的Visual Studio和Clion,但是由于Visual Studio不跨平台最后我们需要在linux环境下编译,所以Visual Studio就pass了,选择了和java开发的idea非常类似的Clion,两者对比如下:
| 功能 | Visual Studio | CLion |
|---|---|---|
| 代码编辑 | IntelliSense代码补全,支持多语言 | 智能补全、语法高亮、代码导航,C++专项优化 |
| 调试工具 | 内存/CPU监控、单步执行时间统计、图形化调试 | 远程GDB调试、可执行文件自动上传至远程主机 |
| 构建系统 | 支持MSBuild、CMake(需配置) | 原生CMake支持,开箱即用 |
| 版本控制 | 内置Git,支持TFVC、SVN | 支持Git、SVN、Perforce等主流VCS |
| 扩展性 | 插件市场丰富(如Resharper C++) | 插件较少,但可通过JetBrains生态扩展 |
| 跨平台 | 仅Windows原生,macOS/Linux版功能受限 | 全平台支持,Linux下体 |
接下来就是选择Clion的编译工具了,CLion原生支持CMake,工具链配置可以指定CMake使用的编译器和构建工具。我们想基于windows开发,又想在liunx上编译,WSL工具链可以在Windows上使用Linux的编译器,正好完美满足,我们 可以在WSL下安装个ubuntu系统,利用ubuntu进行编译。
上面说了那么多废话,我们最终选择的开发环境是Clion+wsl(ubuntu)+vcpkg(外部包管理),下一篇将介绍如何安装Clion+WSL