python del

引用计数法 python使用的是“按引用计数”的方法作为垃圾回收的依据 即:若堆中某内存块不再被其他地方引用,则会对该区域进行垃圾回收 del的作用就是删除引用(拿java做比较就是:仅删除栈中的变量,但其指向的堆中的对象依然存在。通过计算该对象当前被引用次数判断其内存是否要被回收) 注:del只是删除引用,和c++中的free 以及java中的手动置 …

OpenCV 中的 Graph API 介绍

快速认知 例如 OpenCV 中的 cv::Canny(…),可以改用 G-API 写成 cv::gapi::Canny(…) 图 为了让图像处理过程更快,并且让代码有更好的可移植性,OpenCV引入了Graph API这个单独的模块。顾名思义,这是一种基于图的计算方式。这里图的概念类似于pytorch中图的概念。 例如,若一张图片的处理过程 …

Windows下编译并测试OpenCV

注1:以下若不做说明默认将opencv下载编译到我本机 C:\\Users\\HuntZou\\Downloads\\ 目录下,您需根据您自己的情况做一些替换。 注2:以下若不做说明则都是我自己试过的方法 编译 下载cmake https://cmake.org/download/ 下载opencv源码 …

对C++引用库的理解

情景 创建两个静态库 libA 和 libB,libB依赖libA。创建一个程序App引用 libB 关系为:App -> libB -> libA 一般做法是: 创建完libA后编译生成静态库,创建libB时引用该静态库并将libA的头文件复制到libB项目中进行引用。 App对libB的引用也是导入它的静态库和头文件。 可不可以不用头文件? 可以,头文件 …

C++、Qt编译相关概念

问题描述 使用vs2022创建了一个静态库,欲在qt程序中使用,结果报 undefined reference to xxx 错误,这里的xxx就是静态库中定义的方法。可以保证: 已经正确配置依赖并添加头文件 在vs中创建一个示例程序并引入该lib发现可以正常使用 由于对c++生态不太熟,做此记录 问题原因 vs使用的是msvc编译器,而qtcreator中 …

Visual Studio 2022程序打包方法

从打包方式来看,分为debug和release包(项目构建方式) 从依赖方式来看,分为静态链接和动态链接(处理项目依赖的方式) 从程序用途来看,分为exe、lib、dll(最终生成产物) 它们之间互相交叉组合打包 Step 1:配置库依赖(若项目中有依赖第三方的库,NuGet的不需要) Step 2:配置管理器中选择编译类型(默认是debug,打出来的就只有 …

.h/.cpp/.hpp/.c/.o/.obj/.lib/.dll/.a/.so/.exe傻傻分不清

这些都是c/c++编译运行时期所产生的文件,作为一个没用过这门语言的人很容易搞混。 简单分类 简单分三类,也就是三个过程需要的文件 .h/.cpp/.hpp/.c:代码源文件 .o/.obj/.lib/.a:编译过程需要的文件 .dll/.so/.exe:运行过程需要的文件 源代码 cpp 与 c .cpp和.c分别为c++和c的源代码文件。早期都只用.c文 …

docker中的用户解惑

发生了什么? 普通用户(在docker用户组中)通过docker创建了一个文件,结果显示该文件的所有者却是root,且该普通用户已无权删除该文件: 接着,我又使用root用户在宿主机直接创建一个文件: 然后切换回普通用户,再使用docker去删除该文件: 再回头看该文件: 发现该文件已经被删除了。 是不是有种细思极恐的感觉:普通用户只要通过docker就能以 …

visual studio如何使用第三方库

过程实际上很简单,就是两步 引入 .h 头文件告诉我第三方库提供了哪些方法(就好比是菜单) 引入 .lib 库文件告诉程序头文件的具体实现(就好比是具体的做菜过程) 至于 .dll 文件,你可以理解为它是对 lib 文件的补充,有的时候会没有 一般第三方库会提供三个文件 .h/.lib/.dll,有的时候也是两个 .h 和 .lib 在项目中,一般 .h 文 …

基于nextcloud搭建个人网盘

docker 使用docker搭建较为方便 docker run -d -p 80:80 --name nc nextcloud 然后就可以在浏览器访问了 如果希望将文件目录挂载到宿主机,可以加上 -v your-local-dir:/var/www/html/data 但是data目录并非只是文件存储的目录,其内容如下: 也就是说它其实会根据账户创建对应的 …