最近想搭建一个Linux下编程环境,由于是windows和visual studio的重度用户,几乎没怎么接触过Linux,所以都不知道怎么入手,网上查了很多资料,最后锁定wsl。wsl2现在已经支持运行Linux GUI应用,下面是截取官网的一些介绍:
接下来一步一步安装,具体的安装步骤参照上面官网,地址是https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/gui-apps,安装完成之后点击开始菜单,可以发现多了几项wsl下的应用,我的是下面这样:
在开始菜单中就可以轻松打开wsl下的应用,点击Files弹出文件处理的界面。
下一步,我们下载opencv、opencv_contrib,安装cmake、git和一些必要的库(具体可参照How to use OpenCV DNN Module with NVIDIA GPUs on Linux (learnopencv.com)),用cmake配置opencv(跟Windows下一样),然后 make -j4, sudo make install,这样opencv就已经编译安装好了。我们编写一个程序测试一下,直接在Windows下打开vscode,远程连接到Ubuntu,新建文件main.cxx和CMakeLists.txt,内容如下:
点击build,运行,如下,大功告成。
这里出现一个小插曲,最开始并不能正常运行,提示下面的错误,(-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow',很显然这是有关图像显示的错误,是因为没有安装对应的显示库,网上搜了一大圈,在cmake配置opencv的时选中GTK_2就可以了,选中之后重新编译,可以显示图片。
在Windows下使用visual studio进行编程,调试opencv有一个很好的插件imagewatch,那么Linux下有没有呢?也是多方查找,找到了gdb-imagewatch、OpenImageDebugger,实际它俩是一个东西,OpenImageDebugger是新版本,找到GitHub地址,按照提示一步一步安装。
最后在终端输入python3 /path/to/OpenImageDebugger/oid.py --test ,弹出图像调试器窗口。
这里还有一个问题,我在~/.gdbinit文件中已经加入source /path/to/OpenImageDebugger/oid.py,但是在调试遇到断点时并没有弹出上边的窗口,网上找了很多也没找到原因和解决办法,目前已在github提交issue并附带所有文件,作者已经回应并在解决问题,如果有已经解决的小伙伴可以告诉我一下,本人不胜感谢。