![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 62
四片叶子的三叶草
这个作者很懒,什么都没留下…
展开
-
找回git误删除的文件
git找回被误删除的文件原创 2022-09-24 15:24:42 · 782 阅读 · 1 评论 -
Opencv源码跟踪
自己编译的opencv源码跟踪原创 2022-08-04 17:53:39 · 714 阅读 · 0 评论 -
windows下opencv+contrib源码cmake+vs工程配置
windows10 vs2017 opencv cmake原创 2022-07-15 18:41:03 · 726 阅读 · 0 评论 -
Ubuntu下编译CPP动态链接库及使用方法
【任务描述】CPP开发了一些功能,打包成so文件对外发布,并且调用这个so文件。自己写了两个小功能(1)show_img和(2)print_string;就是调用opencv的imread函数将图像读到内存并,以及打印输入的字符串。将这两个小功能分别封装成动态链接库文件,并在另一个main函数中调用他们。【一、文件目录】如下图所示,show_img文件夹包括:实现show_img.h和show_img.cpp文件,以及CMakeLists.txt文件(编译so库),build文件夹是防止编译原创 2021-03-27 15:20:49 · 1941 阅读 · 0 评论 -
Win10 + VS2017 + Ceres配置
【前言】Ceres是google出品的一款基于C++的开源非线性优化库。官方文档如下:Ceres官方文档地址依赖库】Eigen - 官网glog - githubgflags - githubceres - github【配置过程】1.EigenEigen是由.h文件构成的一款支持矩阵运算的数学计算库,因此不需要额外编译,仅解压缩后得到源码文件即可。2.glog解压得到源码文件glog-master后,在同级目录下建立glog_build文件夹,用来放置编译后的文件。打开CMAKE客原创 2020-06-09 22:08:09 · 3277 阅读 · 15 评论 -
windows环境下python调用cpp动态库(win10+opencv)
【前言】在windows环境下,可以利用python直接调用cpp的动态链接库,从而达到混合编程的目的。一、cpp的动态链接库windows下编译cpp的动态链接库的技术比较多了,这里指出两处需要特别注意的地方:(1)要利用extern "C"关键字,实现C编译;(2)pythoe与 cpp的接口最好重写,即在功能函数外面添加一层包装,在包装内实现数据交换。二、python调用cpp的动态链接库主要注意三个地方:(1)dll如果依赖于其他动态库(如opencv),则必须保证其他被原创 2020-06-01 21:42:37 · 2287 阅读 · 1 评论 -
CMakeLists.txt编译进行调试的GDB简介
任务描述:利用CMakeLists.txt设置生成支持调试的.gdb文件,进而可以对代码进行调试。Step 1. 设置gdb指令SET(CMAKE_BUILD_TYPE "Debug")SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXX...原创 2019-12-02 18:06:13 · 5933 阅读 · 0 评论 -
Ubuntu环境下cmake编译C++代码为可执行文件
任务描述:在Ubuntu下利用cmake方式编译C++代码,并运行。分为三个步骤,由浅入深逐步讲解。Part A. 多源码编译;Part B. 源码+第三方库编译;Part C. 多文件源码+第三方库Part A 源码step 1. 编写示例代码如下:#include <iostream>#include "a.h"#define NUM 100int ma...原创 2019-11-28 15:49:37 · 8023 阅读 · 6 评论 -
Ubuntu环境下C++代码读取指定路径下的所有文件
任务很明确,直接上代码。#include <iostream>#include <dirent.h>bool get_filelist_from_dir(std::string _path, std::vector<std::string>& _files){ DIR* dir; dir = opendir(_path.c_st...原创 2019-11-27 18:03:45 · 2930 阅读 · 0 评论 -
Ubuntu环境下VScode配置OpenCV的C++开发环境
任务描述:ubuntu下在vs code内配置opencv的c++环境, 并运行示例代码。step 0. 写在前面的话我的环境是Ubuntu18,OpenCV3.4.1+contrib3.4.1,VScode都是已经安装好的。其中opencv的配置请参考ubuntu下opencv的配置。VScode是直接在商城中搜索下载即可。step 1. vs code插件安装...原创 2019-11-21 18:08:45 · 18974 阅读 · 7 评论 -
ubuntu环境下sublime配置Opencv的C++开发环境
任务表述:在ubuntu下对sublime进行配置,使其可以运行基于opencv的c++代码。step 0. 写在前面的话。我是在Ubuntu18下执行的,opencv是自己编译的,并配置了sublime的编译环境及其快捷运行方式。step 1. 安装sublime和opencv安装sublime的方案我之前也整理过一篇,这里不再赘述,直接附上ubuntu下安装sublime...原创 2019-11-20 10:30:54 · 410 阅读 · 0 评论 -
ubuntu下用GNU(gcc/g++)进行编译
主要介绍在ubuntu下利用GNU进行编译的过程和部分指令的含义, 帮助新手小白入门。(Part A.)写在前面的话step1. 常说到的GNU、gcc和g++什么关系?关于这个可能会困扰到你的问题,推荐gcc与g++的关系,博主给出了简短而详实的解释。总结就是两句话:1. gcc是GNU的简称;2. g++包含gcc。step2. 安装GNU的方案网上一大堆,这里也推荐一篇是...原创 2019-11-18 19:28:58 · 1574 阅读 · 0 评论 -
Ubuntu环境下CPP开发的基础配置
任务描述:新手小白入门在Linux下进行CPP开发的基础配置。目标:在Ubuntu下编写cpp代码,并成功运行。Step 0. 之前的一些准备。我是在虚拟机的纯净Ubuntu环境下“白手起家”的。因此,我们为了达成任务目标,需要做的事情主要有两个(1)安装一个好用的文本编译软件,推荐sublime或visual studio code;(2)安装一个编译器,可以把文本编译成电脑能运行的...原创 2019-11-18 15:28:09 · 1169 阅读 · 0 评论 -
C/C++中的int类型、float类型、double类型
1、int 和 float现在大部分常用的Visual Studio编译器中,int型和float都占用4字节(32 bits)内存。但区别在于:int型数据转换为二进制存储的格式为:最高位是符号位sign,剩下的31位表示实数值real_number。因此,int = sign * real_numberfloat型数据在转换为二进制存储格式是:最高位是符号位sign,接下来八位是指数位expo...原创 2018-06-07 13:26:56 · 6651 阅读 · 0 评论 -
C++搜索文件夹内所有图像并按顺序播放
在文件夹内搜索所有指定格式的文件内容,并按顺序播放。本程序中以图像为例演示。主要用到_finddata_t、_findfirst、_findnext、_findclose等结构体(_finddata_t)或函数(其他三个)。他们都属于io.h头文件。首先是头文件库如下:#include "stdafx.h" #include "iostream" #include "string" #inc...原创 2018-06-07 13:25:58 · 2261 阅读 · 0 评论 -
C++控制输出小数位数
C++风格的小数位输出控制利用cout函数输出指定为是的小数;C++风格输出txt文件是指定输出位数;代码如下:#include <iomanip>double dd = 0.123456789;float ff = 1.2f;cout << "Original data:" << endl;cout << dd <&...原创 2018-07-11 11:21:38 · 8193 阅读 · 0 评论 -
C++读写二进制文件
1、读二进制文件的数据内容时,使用到 ifstream 类,三个步骤(1)打开文件 open 函数;(2)读文件 read 函数;(3)关闭文件 close 函数。2、写二进制文件的数据内容时,使用到ofstream 类,三个步骤(1)打开文件 open 函数;(2)写文件 write 函数;(3)关闭文件 close 函数。 具体实现如下代码// input Mat im...原创 2018-07-28 09:57:42 · 2505 阅读 · 0 评论 -
C++在路径下新建一个指定名称的文件夹
在保存数据是,我们希望将新生成的数据单独保存在一个文件夹中,其实我们可以通过程序自动生成一个指定名称的文件夹,存放数据,而不必提前手动新建文件夹并修改名称。代码实现的方法也很简单, 但是需要注意的是该方法需要包含windows.h头文件。代如下图:string filePath = "OldFilePath\\"; //> current file pathstring save...原创 2018-07-28 10:06:52 · 5447 阅读 · 0 评论 -
char、string、int的相互转化
1、string 转 const char*//> string -> const char*string str = "example";const char* p = str.data(); //> 1st approachconst char* p = str.c_str(); //> 2nd approach2、char* 转 string/...原创 2018-08-08 16:20:03 · 284 阅读 · 0 评论 -
C++关于文件检索的源码转译技巧(R"()"方式)
在C/C++编写代码的过程中,经常会用到检索文件路径的时候, 首先要明确一点,由于“\”符号是C\C++的保留符号,因此直接粘贴路径字符串在代码中是不能使用的。例如下面的方法,是不能得到目标路径字符串的。string s0 = "C:\Users\Administrator\Desktop\RWtest\write.txt";cout << s0.data() <<...原创 2018-12-06 21:55:12 · 6450 阅读 · 1 评论 -
C读写二进制文件
Tips for green man:首先,对编程经验较浅薄的读者们重申一个观点: 计算机内部的一切数据流和信息流,都是二进制的。我们不要纠结于“读二进制的文件”, 或者“写十六进制的文件“, 类似这样的问题。 因为文件本身的保存数据都是按二进制来写的,我们的着眼点应该是文件内的“内容”是什么。比如说你在一个txt文件内,写入了一个“十进制的5”,你打开这个txt看到的就是一个十进制的...原创 2018-06-08 08:57:31 · 11630 阅读 · 0 评论