Windows Server 2019 + Microsoft Visual Studio Community 2022 + CUDA11.7 + CUDNN8.9 + RTX GeForce 3090 * 4 + OpenCV4.7.0 + boost1.82.0。
最近工作需求,需要在服务器(windows server 2019)编译denseflow。当然主要是借鉴前人的经验,这里只是做一个记录,方便下次回顾。
- 整体搭建主要参考文章win10+vs2017+denseflow编译,版本不太一样,会有一些小问题,大体流程是没什么问题的。
- opencv的编译参考文章Win10 OpenCV编译安装CUDA版本。
- Boost安装我参考的是Windows10下配置Boost,不过最后执行命令的时候,打开boost1.82.0 文件夹,按住shift+右键->在此处打开命令行cmd,执行bootstrap.bat脚本,会生成b2.exe。
需要注意几点:
- 版本对应CUDNN和CUDA版本需要对应上,安装成功后,输入
nvcc -V
命令 查看CUDA版本。 - opencv和opencv-contrib版本需要一致,我的都是4.7.0,opencv的cmake需要下载一些文件,网络不好可能会下载失败,最下面会附上下载链接
- 用VS生成的时候,4.7.0版本会有一个问题:opencv_contrib/modules/cudawarping/test/test_remap.cpp 会报错
DIFFERENT_SIZES_EXTRA
未声明,我找了一圈好像确实未声明,最后的方法是将DIFFERENT_SIZES_EXTRA
改成DIFFERENT_SIZES
完美通过编译。 - denseflow的编译,有些问题基本按照文章写处理就好,尤其的cv的命名空间问题,需要一个一个的去修改,要有耐心。
- 还有一个问题,
fopen((name_prefix + tmp).c_str()
,这种c_str()
函数返回值不匹配,需要改成string()
即可。
附上opencv编译过程下载文件 :opencv 下载文件及编译生成文件