很早之前就想种这个草了,然而由于有一个问题一直没有得到解决,让我觉得离种草还差一步之遥。今日终于成功解决,想对视觉开发的小伙伴们大声地呼唤:摆脱Windows,摆脱Visual Studio不是梦!开源大家庭欢迎每一个人的到来!
众所周知,在Windows开发,如果用到第三方库,要做的事可真心不少。就拿OpenCV来举例吧。如果你想在项目里用上OpenCV。那么你就要:
- 下载OpenCV源码。
- 利用CMake在本地编译,并install到某个文件夹。
- 将install文件夹中的bin文件夹加到环境变量的PATH中。
- 将install文件夹中的cmake所在文件夹加到环境变量的PATH中。
但是,如果是在Ubuntu上进行开发呢?你仅需要:
sudo apt install libopencv-dev
然后就没有然后了。一切都做完了。头文件会被放置到/usr/include/
中。动态链接库会被放置到/usr/bin
中。这两个目录,系统会自动去查看。
我常常觉得,变成的很多问题都是分类问题。最擅长分类问题的,是日本人。日本人很喜欢整理家务。什么《断舍离》,《怦然心动的人生整理魔法》都是日本人写的。Windows和Ubuntu的不同其实就是分类的不同:分类是按工程来分,还是按同属性的来分?Windows的选择是按工程来分。一个工程的内容就全部放在一个文件夹下。而Ubuntu却耍了一个巧:用了混合分类法。当没有安装的时候,每个项目都是独立的,但是一旦安装,就会复制一份,并按照同属性来分类。其实,Windows也可以这样用,比如把动态库全部放到system32里。而头文件也有一些默认的搜索路径。但是没人这么干。至于为什么没人这么干?可能是因为放过去好放,但删怎么删呢?Ubuntu上就只需要一条命令:
sudo apt remove libopencv-dev
但Windows上似乎就没有对应之法了。
刚才举例的仅仅是一个库。如果你体验了一个大型的开源项目(依赖很多其它库),光安装你就会知道Ubuntu有多简单,而Windows有多痛苦了。比如,可以体验一下FreeCAD
。
有时,你的依赖库包含了一个头文件,这个头文件你的系统中完全没有。你也完全没有听说过。这时,如果你是Windows的用户,似乎除了google也别无他法。而如果你刚好是Ubuntu的用户。试试apt-file
大法吧。
apt-file search your-unknown-file
经过几秒钟的搜索,立即可以告诉你在哪些包中含有这个文件。然后呢,再用apt
安装这个包就可以啦!比如说:
知道了关键字,却不知道包的名字?用aptitude search
啦
而我开头说的,总觉得离种草还差一点点,是因为Visual Studio中有一个针对OpenCV的牛逼的插件-Image Watch,但Ubuntu上没有Visual Studio。我用的IDE是Qt。Qt上没有Image Watch。所以调试时如何查看图像是一个一直困扰我的问题。而今天,我在github上看到了一个项目(怎么没早看到。。。),叫gdb-image watch。有了这个神器,在所有用gdb调试的IDE中都可以使用啦!而Qt Creator正是用的gdb来调试的。至于怎么用,项目首页讲的非常详细。我就上个效果图吧~
至此,还有小伙伴有理由不迁移到Linux上进行开发吗?