起因

最近突发奇想,想要在windows上跑一些视觉的东西,结果被狠狠地折磨了……

opencv

首先是opencv的源码编译。

在大一的时候,因为一些原因自学了一下opencv3,并且当时使用的IDE是Visual Studio 2019

VS虽然笨重,但是对于C++开发的一些相关依赖它确实很全面,只需要在安装时勾选一些组件即可。OpenCV的二进制文件也可以直接使用。

时隔大半年,自认为比较熟悉Linux环境配置的我想要在windows上也配置上opencv的环境。

因为想要挑战自己,所以就没有去用集成环境了。自己下载了CMake和mingw,打算将vscode打造成视觉处理的一个IDE。

但是!!从官网下载下来的库是有问题的。

问题

在使用CMake编译源码的时候,有一些组件是需要从github上下载的。但是,有关下载这一部分的配置文件已经过期了,原来那个仓库的分支已经变了,导致组件无法直接下载。

需要自己到github上下载然后复制到指定目录。

后面我想了想直接修改了配置文件里的URL,文件是正常下载了但是CMake还是有报错,从日志上没有看出来问题所在。

再后面看了几篇博客,有一个人说可以直接在CMake里不勾选那个组件,opencv除了一些核心的东西都是可以后续再添加的。

然后我果断地丢弃了ADE组件。顺利生成,顺利编译^^

结果vscode还是不可以运行opencv的项目。可以生成exe但是一执行就报错。看报错信息还是缺少了一部分组件。

痛苦面具

在两次编译失败,三次执行失败之后,我认输了,早知道还是VS

yolov4

在配置yolov4的时候我算是彻底看明白了,只要是涉及到编译的东西,在windows上都是困难重重的(还是因为我太菜了)。

依旧是CMake,CMake找不到CUDA。

为什么呢,为什么他会找不到呢(哭泣)。

之后又找到了一种方案,用VS去重新生成YOLO。

可喜可贺,又报错了。蛤蛤。

开始的报错是

>nvcc fatal   : Unsupported gpu architecture 'compute_30' vs

后面查了一下,原来是算力与显卡不匹配,用VS的话需要在VS里面改CUDA相关的配置,CMake编译的话需要更改makefile文件

然而我改了之后也还是有问题,蛤蛤😄

error MSB3721: 命令“"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin\nvcc.exe" -gencode=a

新的报错长这个样子,搜了一下,都是说是路径问题或者算力不匹配,和我的问题不一样呢

至此,放弃windows环境配置

后面听朋友说yolov5配置很简单(不用CUDA的话),下次试一试

补充

windows的环境变量就是一坨十,每次改完都要重启电脑