WSL 2 + vscode + QT 环境配置
作业要搭个很麻烦的环境。这里大概记录下步骤。
安装WSL2 + Ubuntu + vscode
WSL2的安装,推荐直接看微软的文档。网上有些教程已经过时了。
https://learn.microsoft.com/en-us/windows/wsl/setup/environment
里面同时讲了怎么配置vscode的wsl环境,要装个remote-wsl插件。
这里我为了美化shell还安装了zsh+oh my zsh,注意换了主题的话要在设置里改字体。否则会显示错误。
安装QT Framework + QT Creator IDE
命令行输入
sudo apt install qt5-default
就能成功安装QT的框架了。
为了有图形化的QT开发界面,还需要安装QT Creator IDE,在https://download.qt.io/archive/qtcreator/里找到所需版本的linux安装包.run文件,放在ubuntu的目录下面,用chmod改权限后运行即可。
安装CMake,配置编译运行QT程序
这里我用了cmake,是因为可以配合vscode的cmake插件进行开发。暂时不知道后续需不需要用到qmake。
打开QT Creator,创建一个空项目,Build System设置为CMake,这样就能创建一个用CMake配置的空QT项目工程了。
在工程目录下用命令行cmake和make就能生成可执行文件。
在vscode中运行和调试
这一步花了我好几个小时,终于了找到WSL环境下的正确配置办法,按下面的步骤来就可以了。
首先wsl环境下的vscode下需要安装的插件是(暂时用不到QT相关的插件)
C/C++, CMake, CMake Tools
wsl环境下还需要安装C++编译器,ubuntu自带了gcc编译器,所以到这一步应该已经有了。
打开QT工程目录的时候,由于有CMakeList.txt,CMake插件会自动进行配置,但我一直没有配置运行成功,报错是
cmake error: could not create named generator mingw makefiles
打开CMake插件设置里的Generator这一项发现是空的,此时会被插件自动判定为MinGW的Makefile格式,自然没法在WSL环境下通过编译。把这一项填上Unix Makefiles即可。
另一个令人迷惑的问题是QT相关的头文件一直被intelligence显示找不到,即便把
usr\include\x86_64-linux-gnu\qt5
这个目录下的QT头文件加入include path也不好使,还会引发其他报错。
网上找也不好使,最终我终于在一篇文章https://blog.csdn.net/weixin_43669941/article/details/108921714里找到了解决办法。
如文章所说需要手动添加一个include属性,但这个文件夹并不在目录里。用命令行编译项目成功后,才会在目录下生成一个{project}_autogen的文件夹。把里面的include子目录加到CMakeList的target_include_directories属性就可以了。
现在就可以愉快地使用vscode进行运行和调试了!