因为不想去安装虚拟机,在自用的电脑上面想跑一下Darknet看看效果。
开启了爬坑之旅。
安装配置VSCode
VS C++的DIE感觉太重,例外已经安装过VSCode了。所以选在升级VSCode来运行Darkent。
第一步安装VSCode了,这个就是下一步搞定的事,这里就不详细介绍了。
第二步是安装VSCode的C/C++插件。在网上教程是叫cpptools插件(找了半天没有看见),后来才发现cpptools是指微软发布的C/C++插件。
安装方法:
在VSCode中打开工具窗口 (默认Ctrl+Alt+P) 输入C/C++。找到微软发布的插件安装。
安装C/C++编辑器
这里选择的是MSys2,因为Darknet自带了Makefile文件,方便VSCode集成调用。
第一步下载MSys2,下载地址http://www.msys2.org/。根据不同电脑选择响应的版本。我的电脑是64位,我选择的是 msys2-x86_64-20180531.exe。
默认安装地址C:\msys64,
第二步配置HOME 环境变量,选择window+pause break设置Path添加C:\msys64\usr\bin。
第三步添加镜像站,不考虑网速的同学请跳过。镜像站可以考虑清华大学镜像站或者中科大镜像站。C:\msys64\etc\pacman.d文件夹下面有mirrorlist.mingw64文件。
添加以后如下:
## mirrorlist.mingw64
##
## 64-bit Mingw-w64 repository mirrorlist
##
## 清华大学软件镜像
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
## 中科大镜像
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
## msys2.org
Server = http://repo.msys2.org/mingw/x86_64/
## Sourceforge 镜像
Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
## The UK Mirror Service Sourceforge mirror
Server = http://sourceforge.mirrorservice.org/m/ms/msys2/REPOS/MINGW/x86_64/
## Sourceforge.net
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
## FutureAt 镜像
Server = http://www2.futureware.at/~nickoe/msys2-mirror/msys/x86_64/
配置完成之后,再打开 MSys2。
测试一下软件源是否可用
pacman -Sy
如果看到了以下几句,说明没有问题:
:: 正在同步软件包数据库...
mingw32 已经是最新版本
mingw64 已经是最新版本
msys 已经是最新版本
第四步更新核心软件包
pacman -Su
这句命令意为更新所有软件。
运行的时候会出现一行文字,询问是否继续。输入Y,然后回车,下同。
完成以后关闭MSys2。
在安装目录下找到 autorebase.bat,双击运行。
再打开 Msys2。
pacman -Su
如果没有更新就表示系统更新完成。
第五步安装gcc、gdb、make
pacman -S gcc
pacman -S gdb
pacman -S make
安装后我们测试一下:
make -v
显示类似如下内容说明安装成功:
GNU Make 4.2.1
为 x86_64-pc-msys 编译
Copyright (C) 1988-2016 Free Software Foundation, Inc.
许可证:GPLv3+:GNU 通用公共许可证第 3 版或更新版本.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律允许的范围内没有其他保证。
gcc -v
显示类似如下内容说明安装成功:
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-msys/6.3.0/lto-wrapper.exe
目标:x86_64-pc-msys
配置为:/msys_scripts/gcc/src/gcc-6.3.0/configure --build=x86_64-pc-msys --prefix=/usr --libexecdir=/usr/lib --enable-bootstrap --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --with-arch=x86-64 --with-tune=generic --disable-multilib --enable-__cxa_atexit --with-dwarf2 --enable-languages=c,c++,fortran,lto --enable-graphite --enable-threads=posix --enable-libatomic --enable-libcilkrts --enable-libgomp --enable-libitm --enable-libquadmath --enable-libquadmath-support --enable-libssp --disable-win32-registry --disable-symvers --with-gnu-ld --with-gnu-as --disable-isl-version-check --enable-checking=release --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible
线程模型:posix
gcc 版本 6.3.0 (GCC)
安装Darkent
第一步下载darknet
git clone https://github.com/pjreddie/darknet
cd darknet
wget https://pjreddie.com/media/files/yolov3.weights
第二步在 VS Code 中打开工具窗口 (默认Ctrl+Alt+P) ,输入 C/CPP: Edit Configurations来生成配置文件 ,然后在自动打开的c_cpp_properties.json中配置 Include路径等内容 (一般而言自动生成的就是可用的,但是 Windows 下可能需要额外配置
上一步结束后,一些 C/C++ 的代码提示等功能应该就可以正常工作了,接下来我们让 VS Code 能处理编译工作。
第三步打开工具窗口 (默认Ctrl+Alt+P) → 输入Tasks: Configure Task Runner,弹出窗口中选择 Others (这里是假定我们要用 GCC 来编译,如果使用 MSBuild 做这项工作,那么可以直接选择 MSBuild 选项) → 在新打开的tasks.json中配置如下 :
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "make",
"args": [],
"group": "build",
"presentation": {
// Reveal the output only if unrecognized errors occur.
"reveal": "silent"
},
// Use the standard MS compiler pattern to detect errors, warnings and infos
"problemMatcher": "$msCompile"
}
]
}
第四步接下来尝试对代码进行调试,进入调试窗口 → 点击调试配置按钮。选择 C++(GDB/LLDB) (如果使用 MSVC 编译,可以选择C++(Windows)) → 此时会生成调试配置文件 launcher.json 。代码如下:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/darknet.exe",
"args": ["detect","cfg/yolov3-tiny.cfg", "yolov3-tiny.weights","data/eagle.jpg"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:\\msys64\\usr\\bin\\gdb.exe",
"preLaunchTask": "build",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
miDebuggerPath是安装gdb的地址。args为启动参数。
终于完成了。至于安装CUDA 和结合Opencv部分下次在介绍