DarkNet之VS移植

网址:Yolo的搭建和在Windows下封装以及工程应用 - CSDN博客
封装yolo-windows为动态链接库 - CSDN博客
GitHub - AlexeyAB/darknet: Windows and Linux version of Darknet Yolo v2 & v3 Neural Networks for object detection(主要)

如何生成.dll供调用

补充了解:lib文件与dll文件中都是二进制文件

静态链接lib文件的二进制代码最终要链接植入你的exe中
动态链接dll文件内的二进制代码不会植入你的exe中
静态编译如果lib文件的源码修改了 编译生成新的lib文件那么
新的lib文件要和你的源码编译得到的obj文件重新链接生成 新的exe
之前的exe就可以扔进回收站了
动态编译  dll 的源码修改了 重新编译生成新的dll  (dll的调用接口 保持不变)
你的源文件编译obj文件后链接生成exe  exe是动态链接调用dll 的所以 你的源码不需要重编译 你的exe依然可以用,你要做的只是 copy 过来替换一下 n个dll中发生变动的那k个

动态库有LIB文件和DLL文件。LIB文件必须在编译期就被链接到应用程序中,而DLL在运行期才会被调用。如果有DLL文件,则对应的LIB文件一般是一些索引信息,具体的实现在DLL文件中。如果只有LIB文件,那么这个LIB文件是静态库文件,索引和实现都在其中。静态库文件有好处,给用户安装时就不需要再挂动态库了;但也有缺点,即导致EXE较大且失去了动态库的灵活性,在版本升级时,同时要发布新的EXE才行。

c++中.dll与.lib文件的生成与使用的详解_C 语言_脚本之家
上面链接中有如何生成lib和dll库,本人试过,release时,只是都没有找到头文件,生成dll时,也没有相应的.lib文件生成,可能是集成环境更新了?而debug时,都出错,显示不能生成.exe

还是参考下面的链接(这边写的非常好,也正好适用于yolo_console_dll_cpp对yolo_cpp_dll的调用):【好】C++中lib 和 dll 的区别、生成以及使用详解 - CSDN博客

有两种方式构建动态库:(1)从一开始就构建动态库的项目(2)构建正常的项目之后在属性中设置

接下来,开始植入按块检测的代码,先在yolo_console_dll项目中改

注意:生成两个.lib与.dll,这两个文件后期都是需要的~~

AB_Detec中按块检测的方式已经改写完成~~
时间:512*512:780ms
2560*3328:11763ms,11s左右

你可能感兴趣的:(DarkNet之VS移植)