为何要调试Linux代码
1 学习Linux环境开发
想必很多同学都想学习Linux环境下的开发,一个是很多纯服务端程序不需要Windows这样的窗口界面。另一个纯服务端开发Linux的命令行以及脚本优势也比较明显。相反,Windows在纯服务端编程方面并没有Linux有优势。
2 嵌入式开发
在嵌入式环境下开发,板子(设备)上一主要是没有大容量的持久化存储硬件(磁盘/固态盘)。所以,不能安装Qt这种大型的集成开发环境。而且系统也是经过了大幅裁减的,都是为了减少不必要的成本(嵌入式板子的存储成本也是设备成本的一部分),这样就能给其他功能留下一点更多的空间。
降低成本就是提高竞争优势。
所以,嵌入式开发往往都是,在个人电脑上装开发调试环境,嵌入式板子上装GDB Server远程调试。
对于这种开发环境来说,QtCreator的支持是非常好的。
这里的QtCreator是一个支持CMake工程的集成开发环境,并不是用Qt开发带有界面的程序。
所以我们使用QtCreator仅仅是因为,QtCreator这个集成开发环境对于这种环境支持的比较好。而不是我们在嵌入式板子上开发Qt程序。这个一定要注意!
为何是WSL
在我们上班的时候,你总是会要用微信,企业微信,飞书等办公软件。我相信绝大多数人都是在用Windows办公的,包括大部分的程序员。
除非你是只做Linux服务端开发这种极少数人的工作。否则公司应该不会给你两台电脑,一个是Windows,一个是Linux。
也就是大部分人其实即便工作中要用Linux,也是有使用Windows的需求的。
而WSL( Windows Subsystem for Linux)是在Windows上 的一个Linux子系统,它像下面这样工作:
为何是Qt
我们在WSL(Ubuntu)命令行里安装Qt以及QtCreator。这样一来Qt本身就是在纯Linux环境里的。所以QtCreator可以访问所有的Linux系统库。比如,epoll pthread_create 这些Linux专有的 C 接口系统库函数。
而Visual Studio 2022 虽然也可以使用Linux 下 CMake 开发。但是我并没有成功的使用过。
目前发现本文的这种方案还是比较靠谱的。
为何是MobaXterm
在WSL安装了QtCreator之后,因为WSL是一个无界面的Ubuntu系统,所以QtCreator在WSL里运行出不来界面。需要安装MobaXterm。
安装了MobaXterm之后:
MobaXterm就会识别到你本机安装的WSL:
就可以在MobaXterm里面打开Ubuntu:双击上图中的WSL-Ubuntu即可打开Ubuntu:
安装MobaXterm
下载MobaXterm
使用必应搜索 MobaXterm,第一个就是:
安装免费版即可:
下载地址:
MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Home Edition (mobatek.net)
下载 Installer 版本。
一路傻瓜安装即可。
WSL安装
下面的这篇文章是我的CSDN,这一篇文章全部搞定安装WSL的所有细节:
WSL安装与使用_wsl命令安装_C++开发者的博客-CSDN博客
保证你一次成功!
Qt安装在WSL上
这一步非常简单,只需要在你的WSL里输入并依次执行下面的这些命令即可。
部分命令需要你输入Y或者y表示同意安装。
这些命令就是:
sudo apt-get update
sudo apt-get install build-essential cmake
sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
sudo apt-get install qtcreator
sudo apt-get install qt5*
在MobaXterm中启动QtCreator
打开MobaXterm:
双击WSL-Ubuntu:
输入qtcreator :注意是小写
大功告成!
共享文件开发
这时候你可以浏览你本机Windows上的文件夹来开发。非常方便!
(WSL默认把/mnt映射到了Windows的各个盘的跟目录!太人性化了!)
跑一个 Linux Hello World 代码
按照上面的操作打开一个Windows本地的CMake工程之后,点击 Configure Project:
点击 调试运行:
运行输出:
跑一个 Linux epoll 最简示例代码
浏览本地文件夹中的CMakeLists.txt
先选择启动项(因为我这个CMakeLists.txt里有多个可执行程序):
再调试运行:
开始你的 Windows 上的 Linux 开发之旅吧!