![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
Ubuntu_ximi
这个作者很懒,什么都没留下…
展开
-
libtorch中tensor的data_ptr使用和巨坑
libtorch的tensor data_ptr使用和注意事项原创 2022-11-16 11:37:26 · 2972 阅读 · 4 评论 -
C#中导入C++ dll中的类并定义dll的回调函数实现dll中数据的实时获取
对于一些底层算法库,我们一般封装成c++ dll,如果需要在c#中实现调用,实际上很简单的导出c++ dll的函数即可。但如果c++ dll中有一些实时数据需要传递出来,那么一种常规做法就是在c++中设置回调函数,相当于提供一个接口,c#前端就可以利用这个接口来实时获取c++ dll中的数据如下是一个实例:首先定义c++ dll,用于模型训练,并回传训练过程中的字符串日志和结果数据。所以分别定义了一个传递日志的回调函数和一个传递数据的回调函数// -------------------c++ dl原创 2022-04-01 11:30:48 · 2290 阅读 · 0 评论 -
在Windows下用c语言printf函数实时输出调试信息以及宏指令的使用
1. 基础需求:我们在调试c语言时,通常用printf函数输出调试信息,而printf函数默认是输出到缓冲区,等到缓冲区满了以后才输出,或者等到输出换行符后才输出。特别是在qt里边,printf函数的输出即使包含换行也需要等到缓冲区满了以后才输出,此时如果需要实时得到调试信息的输出怎么办?可以采用fflush(stdout)即可。printf("Error happend!"); fflush(stdout); // 增加fflush(stdout)后就会立即输出到设备而为了简单起见,可..原创 2020-08-25 17:21:09 · 1127 阅读 · 0 评论 -
在visual studio中利用单个解决方案包含多个子项目的方式开发cuda dll库项目
本文基于在visual studio中利用单个解决方案,来开发一个可执行新项目,且同时包含一个新开发dll项目,这个可执行主项目能够同步调用dll子项目,相当于一个解决方案包含多个子项目的有依赖编译。这种项目组织方式的优点在于:常规dll开发需要有一个代码调试项目,调试好了再用一个dll生成项目,最后再用要给dll调用项目去验证,但使用这种单个解决方案包含2个子项目的方式,就可以代替上面的3个项目,而且最大的好处是同样可以调试dll内部的函数,包括cuda的核函数,也可以通过Nsight加断点进入调试。原创 2020-08-20 14:14:20 · 671 阅读 · 0 评论 -
YoloV4在windows下的安装使用以及生成dll库用于模型前向推理
主题1:YoloV4的安装1. 安装过程基于https://github.com/AlexeyAB/darknet所说的windows下编译的第一种方法,即运行.\build.ps1,其中build.ps1是windows下的power shell脚本文件,类似于linux下的makefile,里边build.ps1的内容就不细说主要包括:// 首先获得Program Files(x86)的文件夹路径function getProgramFiles32bit(){}// 然后从Program原创 2020-07-18 18:25:27 · 2042 阅读 · 1 评论 -
Windows下把CUDA程序生成dll库并在项目中调用dll中的函数
如何把自己写的cuda代码生成dll库,方便集成到其他主项目中去进行调用呢,这里总结了一个基本流程:操作环境:Windows10,visual studio2017,cuda10.2, opencv4.2都已经安装并配置好了。主题1:cuda代码生成dll库1. 创建项目:在vs里边创建常规dll项目(可选择选择”动态链接库”或者”具有导出项DLL的动态链接库”)均可,后者会自动生成一对h文件和cpp文件而无需自己创建。但由于是构建cuda的dll库,所以还是自建比较合适,因此建议直接选择”动态原创 2020-07-02 22:24:56 · 4057 阅读 · 2 评论 -
Linux下opencv4的c++接口版本的安装
系统是ubuntu16,安装方式网上资料一大把,这里把基本流程介绍下,然后介绍下自己解决的问题:先下载,然后安装各种依赖,然后:step1.生成makefile,如下是最基本的cmake选项,不用增加其他额外的就能安装成功。cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release …step2.编译,make ...原创 2020-02-23 15:26:55 · 1115 阅读 · 0 评论 -
makefile及基础语法
makefile命令和语法(1)定义变量:变量值的本质是一个字符串,可以是文件名列表,参数烈,目录列表等。通常对于参数列表变量,写成大写方式;对于内部一般变量写成小写形式。同时有两种定义变量方式,一种obj:=表示直接展开式变量,该变量是在变量定义时就求值,另一种obj=, obj+=, obj?=都表示递归展开式变量,这种变量是在变量被引用时才求值。obj=代表递归赋值,obj+=代表递归...原创 2019-12-25 18:28:19 · 678 阅读 · 0 评论 -
C++中神奇的数组名(指向元素的指针、指向数组的指针、指向指针的指针)
参考自:https://www.cnblogs.com/chenyangyao/p/5222696.html以前常对数组名的诸多表现有点困惑,看了这篇文章算是彻底清楚了。C++是一种对类型匹配非常严格的语言,而对于数组来说,指针类型分为两种,一种是元素类型指针(指向元素),另一种是数组类型的指针(指向数组),也就是指向指针的指针。数组名本身代表的是数组首元素的地址,所以数组名本身是一...原创 2019-11-23 21:55:09 · 281 阅读 · 0 评论 -
cmake核心知识点整理
cmakelists的功能,就是自动生成makefile,如果有cmakelists,则编译过程就是如下:mkdir buildcd buildcmake .. //或者cmake.这里两个点表示在上层文件夹下寻找cmakelists生成makefile和相关文件make //执行makefilemake install //(optional)安...原创 2019-11-14 22:55:00 · 1006 阅读 · 0 评论 -
在Linux VSCode中编写调试C++解决ipch文件过大问题
最近在linux中用VSCode做IDE调试c++,发现vscode会自己在每个文件夹里创建.vscode文件夹,并生成.ipch文件,这个文件动不动就30-40M,即使你的cpp文件才几十k。网上搜了下,大家都是在谈vs里边通过设置如何避免ipch文件的产生,但在vscode里边我找了半天没找到对ing的设置,没办法只能考虑别的方式,所以打算写个简单的shell脚本来做这件事del_ipch(...原创 2019-04-23 11:46:19 · 1887 阅读 · 2 评论