CLion IDE用MSVC和cmake编译darknet(带GPU)

news2025/1/10 13:41:33

这个配置教程给用过pytorch,懂得深度学习代码的基本流程,但又不熟悉windows c++开发环境的宝子们使用。

安装CUDA,CUDNN

一般都有,不说了。注意上nvidia官网看一下显卡架构,后面要用,比如我的丽台M2000架构是52

下载Visual Stdio

目前官网下不到2017,只有2022,没关系,我们安装的时候勾选 MSVC v141 - VS2017 C++ x64/x86 生成工具
在这里插入图片描述

更改配置

打开x64 Native Tools Command Prompt for VS 2022 ,开始菜单里可找到
如果打开vs prompt,输入cl,默认是最新的那个msvc,最新的这个版本太高了,如果你编译会提示你需要的cuda版本需要大于12.4,我工作电脑不能装这么高的版本。我们需要更改msvc版本,换成之前勾选的141
找到C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools下有个VsDevCmd.bat的脚本,是vs prompt的启动脚本,需要在最后的exit /B 0前面添加以下内容。其中14.16.27023是你装的msvc版本。10.0.22621.0是windows kit的版本,注意看自己是不是。

set EXTERNAL_INCLUDE=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\include;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt
set INCLUDE=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\include;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt
set LIB=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\lib\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\lib\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\\lib\10.0.22621.0\\um\x64
set LIBPATH=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\lib\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\lib\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\lib\x86\store\references;C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.22621.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.22621.0;C:\Windows\Microsoft.NET\Framework64\v4.0.30319
set VCToolsInstallDir=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\
set VCToolsRedistDir=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.16.27012\
set VCToolsVersion=14.16.27023
set PATH=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\%PATH%

这些内容是哪里看的?如果你使用clion自带的cmake编译cmakelists,会出现报错,如果熟练使用clion,你可以看到vs prompt打印了哪些默认的初始变量,这些全部都要修改。

如果你改
如果你改成功了,是这样的

配置CLION选项

配置clion的cmake参数,toolchain选择visual stdio
在这里插入图片描述
cmake options需要添加以下内容,这里我没开OPENCV,因为没装,你装了可以删掉,注意了这里-DCMAKE_MAKE_PROGRAM一定要填vs的ninja,因为用clion的ninja找的是他自己的mingw,会爆cuda编译相关错误。

-DCMAKE_CUDA_ARCHITECTURES=52 -DENABLE_OPENCV:BOOL=OFF "-DCMAKE_MAKE_PROGRAM=C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe"

添加一下CMAKE_CUDA_COMPILER,这是nvcc路径,可以作为环境变量,也可以写进cmake options里
在这里插入图片描述
注意改一下toolchain /visual stdio的c compiler和c++ compiler,msvc要重选
在这里插入图片描述

运行Cmake和build project

打开clion的cmake,会弹出来,运行成功就是这样。
在这里插入图片描述
点击 build/build all visual stdio debug。成功就会在目录下生成darknet.exe
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2065292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零开始Dify本地部署|Windows

参考官方文档部署 Dify本地源码启动 windows最好结合WSL使用,懒得配置WSL,就是硬肝! 1.Clone Dify 代码 先找到项目GitHub 开源链接clone 下来,使用docker部署运行(Windows配置docker环境这里不赘述) gi…

Prometheus Alertmanager告警之邮件、钉钉群、企业微信群机器人报警

文章目录 一、部署alertmanager相关组件1.alertmanager-config2.alertmanager-message-tmpl3.alertmanager 二、调试邮件告警三、钉钉群/企业微信群 报警3.1添加钉钉群机器人3.2添加企业微信群机器人3.3部署alertmanager-webhook-adaptermessage-tmplalertmanager-webhook-adap…

Windows环境下,使用bat脚本配置本地域名解析(含新增、修改、清理)

适用场景: 1.内部不存在DNS服务器的客户; 2.客户电脑不知道前期是否过某域名的本地解析。 整体思路: 1.备份原始hosts配置文件; 2.将hosts配置文件中包含xxxxxxxxxx.com域名的解析清空; 3.写入正确的解析到hosts配置文…

发布MindSearch到ModelScope创空间

一、创建空间 1.点击【我要创建】来创建一个应用 2.填写完基础信息 会出现一个未发布的应用 二、上传代码 1.参照当前页的指示一步一步将MindSearch部署需要的文件上传到指定的repo即可 2.在当前页点击【空间文件】查看刚才通过命令上传的文件 三、上线应用 1.点击【设置】可…

【论文阅读】A Closer Look at Parameter-Efficient Tuning in Diffusion Models

Abstract 大规模扩散模型功能强大,但微调定制这些模型,内存和时间效率都很低。 本文通过向大规模扩散模型中插入小的学习器(称为adapters),实现有效的参数微调。 特别地,将适配器的设计空间分解为输入位置、输出位置、函数形式的…

什么是ConcurrentHashMap?实现原理是什么?

什么是ConcurrentHashMap?实现原理是什么? 在多线程环境下,使用HashMap进行put操作时存在丢失数据的情况,为了避免这种bug的隐患,强烈建议使用ConcurrentHashMap代替HashMap。 HashTable是一个线程安全的类&#xff…

HashMap是线程安全的吗?为什么呢?

HashMap是线程安全的吗?为什么呢? HashMap是线程不安全的! 线程不安全体现在JDK.1.7时在多线程的情况下扩容可能会出现死循环或数据丢失的情况,主要是在于扩容的transfer方法采用的头插法,头插法会把链表的顺序给颠倒…

【亲测有效】JS Uncaught TypeError: [function] is not a constructor

【亲测有效】JS Uncaught TypeError: [function] is not a constructor 在JavaScript编程中,Uncaught TypeError: [function] is not a constructor 是一个相对常见的错误,通常发生在尝试使用某个值作为构造函数,但实际上它不是构造函数的情况…

鸿蒙卡片服务开发

首先先创建一个项目 在该项目下创建一个卡片服务 在module.json5文件下配置 {"module": {..."extensionAbilities": [{"name": "EntryFormAbility","srcEntry": "./ets/entryformability/EntryFormAbility.ets",…

Linux文件操作:文件描述符fd

文章目录 前言:回顾一下文件提炼一下关于文件的理解: 理解文件:通过系统调用操作文件:理解标志位传参:打开文件 open写入信息 write 理解文件描述符:对于open的返回值:文件描述fd的本质是什么呢…

设计模式之Decorator装饰者、Facade外观、Adapter适配器(Java)

装饰者模式 设计模式的基本原则,对内关闭修改。 Decorator Pattern,装饰者模式,也叫包装器模式(Wrapper Pattern):将一个对象包装起来,增加新的行为和责任。一定是从外部传入,并且可以没有顺序&#xff0…

Qml 实现仿前端的 Notification (悬浮出现页面上的通知消息)

【写在前面】 经常接触前端的朋友应该经常见到下面的控件: 在前端中一般称它为 Notification 或 Message,但本质是一种东西,即:悬浮弹出式的消息提醒框。 这种组件一般具有以下特点: 1、全局/局部显示:它不…

基于单片机的信号发生器设计

本设计采用了STM32F103C8T6单片机作为控制核心,通过控制DDS模块产生不同频率且高稳定和低失真的信号,再通过放大电路对信号的幅值进行放大。此外通过按键可以使用户对频率进行调节以及对输出波形进行切换,由于AD9833输出的幅值是固定的&#…

启动docker镜像

1、运行容器 2、当前运行的进程 3、当前位置和启动时间 4、cat/etc/redhat-release查看版本 5.镜像是模版,容器是实例 6.容器中没有命令运 7.容器总是能轻易获取 8.配置yum 9.安装http 10.修改index⽂件 11.httpd -k start 12.访问 13.退出就没有服务了 14…

细谈LCM驱动电压VGHVGL电路原理

前言: ***在液晶显示屏驱动电路中,VGH电压负责对TFT栅极电容进行充电开启,并使电容电压保持一个场周期,VGL电压负责TFT栅极的关闭。 如果VGH和VGL电压出现不稳或者幅度变化,都会引起图像显示故障,例如花屏…

委托发布 | 进迭时空联合移动云能力中心实现业界首个RISC-V IO虚拟化方案

仟江水商业电讯(8月22日 北京 委托发布)虚拟化是云计算技术基石,是RISC-V走进云计算等高性能计算场景的必然要求。RISC-V国际基金会2021年制定了Hypervisor 1.0规范,2023年制定了AIA 1.0规范和IOMMU 1.0规范,这3个规范…

CentOS 7使用RPM安装MySQL5.7

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1:下载MySQL5.7的rpm安装包2:卸载已安装的MySQL(没安装过则跳过)3:MySQL安装环境准备4:安…

网络竞赛可视化:打造线上赛事

通过图扑网络竞赛可视化,可以实时跟踪和分析参赛者的表现,直观展示比赛进程和结果。这不仅提高了观赛体验,还帮助组织者更有效地管理和优化赛事。

STM32——SPI通信协议以及软件读写

1、SPI协议 SPI相对于I2C传输速度更快;设计简单,通信协议使用硬件线比较多,有些资源浪费 以下设备需要进行共地,如果从机没有独立的供电源,主机需要给供电 SS线低电平有效,主机只能选择一个从机 推挽输出…

Spring + Boot + Cloud + JDK8 + Elasticsearch 单节点 模式下实现全文检索高亮-分页显示 快速入门案例

1. 安装elasticsearchik分词器插件 sudo wget https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.13.4.zip sudo mkdir -p ./es_plugins/analysis-ik sudo mkdir ./es_data sudo unzip elasticsearch-analysis-ik-8.13.4.zip -d ./es_plugins/a…