自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (7)
  • 收藏
  • 关注

原创 git在linux bash下显示分支信息

git bash 分支

2023-03-03 16:31:47 612 1

原创 查看openssl支持的加密方式

openssl的加密套件查看

2022-06-14 09:15:21 1975

原创 pointer-like classes 开放智能指针

template<class T>class shared_ptr{public: T& operator*() const { return *px; } T* operator->() const { return px; } shared_ptr(T* p): px(p) {}private: T * px; long* pn;}pointer-like classes 开放迭代器template<class T,class Ref, cl

2022-01-23 16:28:49 168

原创 linux调试gdb core

#SIGSEGV 11 /* Segmentation violation (ANSI). */ 建立CORE文件,段非法错误ulimit -c unlimited #使用生成core文件#向程序发送11,建立core文件,段非法错误ps -aux |grep youappkill -11 pid#core文件生成位置/var/lib/apport/coredump#调试core文件gdb yourapp /var/lib/apport/coredump/core.**

2021-12-29 14:19:59 621

原创 clang+llvm+linux x86平台交叉编译arm64

下载工具链workPATH=`pwd`/toolchainmkdir -p $workPATHcd $workPATHURL_LLVM="https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz"URL_GCC_LINARO="http://releases.linaro.org/components/to

2021-12-24 10:28:05 7459 5

原创 C++代码的编译流程

预处理→编译→汇编→链接预处理:预处理用于将所有的#include头文件以及宏定义替换成其真正的内容,预处理之后得到的仍然是文本文件,但文件体积会大很多。gcc的预处理是预处理器cpp来完成的,2.编译:这里的编译不是指程序从源文件到二进制程序的全部过程,而是指将经过预处理之后的程序转换成特定汇编代码(assembly code)的过程。汇编:汇编过程将上一步的汇编代码转换成机器码(machine code),这一步产生的文件叫做目标文件,是二进制格式链接:链接过程将多个目标文件以及所需的

2021-11-30 15:41:02 324

原创 linux平台交叉编译arm64库

1.构建工程时指定工具链cmake -DCMAKE_TOOLCHAIN_FILE=/home/…/gnu_arm64.cmake2.CMAKE_TOOLCHAIN_FILE 交叉编译文件#工具链文件 gnu_arm64.cmakeset( CMAKE_SYSTEM_NAME Linux )set( CMAKE_SYSTEM_PROCESSOR arm )SET(CMAKE_SHARED_LIBRARY_PREFIX "lib")SET(CMAKE_SHARED_LIBRARY_SUFFIX

2021-11-30 15:28:44 962

原创 C++ 仿函数 function-like classes

仿函数 class ShorterThan { public: explicit ShorterThan(int maxLength) : length(maxLength) {} bool operator() (const string& str) const { return str.length() < length; } private: const int len

2021-11-29 21:01:36 373

原创 转换函数(conversion function)c++

conversion functionclass Fraction{public: Fraction(int num,int den=1) :m_numerator(num),m_denominator(den) {} operator double() const {//可以转换为double return (double)(m_numerator / m_denominator) }private: double m_numerator;//分子 double m_denomi

2021-11-28 11:39:07 316

原创 Linux+Tomcat+Mysql+Xwiki+Nginx配置

Tomcat操作基本安装操作:http://www.cnblogs.com/EasonJim/p/7202844.html/opt/tomcat8/bin/shutdown.sh 关闭tomcat/opt/tomcat8/bin/startup.sh 启动tomcatXwiki+Mysql的基本配置涉及Mysql数据库的下载安装,xwili库的下载.参考连接:https://blog.csdn.net/forrest_ou/article/details/68068685Nginx基本配

2021-11-22 11:41:08 2371

原创 C++ 类模板,函数模板,static,namespace

staticclass Account{public: static double m_rate;//类中声明 static void set_rate(const double &x) { m_rate=x; }};double Accoutn::m_rate=1.2;//类外定义int main(){ //调用静态函数的方式有两种 Account::set_rate(5);//通过class name调用 Account a;//通过object调用 a.set_r

2021-11-21 15:54:04 456

原创 String C++

简单实现c++ 的stringclass String{public: String(const char* cstr=0); String(const String& str); String & operator =(const String &str); ~String(); char * get_c_str() const { return m_data; }private: char* m_data;}//ctorinline String::St

2021-11-21 15:05:02 319

原创 C++堆栈管理

Stack (栈) heap(堆)Stack,是存放在作用域(scope)的一块内存空间(memory space).例如当你调用函数,函数本身会形成一个stack用来放置接收到的参数,以及返回值.程序自动清理在函数本身(function body)内声明的任何变量,其所使用的内存块都取自上述stack.heap,或所谓system heap,是指由操作系统提供的一块global内存空间,程序可动态分配,(dynamic allocated),从而获得若干区块(blocks).static 静态对象

2021-11-21 11:37:26 525

原创 构造,拷贝构造,赋值构造函数C++

String Class#ifndef __MYSTRING__#define __MYSTRING__class String{public: //big tree 三个特殊的函数 String(const char* cstr=0);//构造函数 String(const String &str);//拷贝构造 String operator =(const String &str);//拷贝赋值 ~String();//析构函数 内存析构 离开作用域

2021-11-20 23:29:40 353 1

原创 C++操作符重载

操作符重载类的所有的成员函数隐藏this指针.reference:传递者无需知道接收者是以reference形式接受.//成员函数操作符重载inline complex& __doapl(complex *this,const complex&r){ return *this;}inline complex & complex::operator+=(const complex& r){ return _doapl(this,r);}C3+=C2

2021-11-20 20:36:27 263

原创 针对protobuf版本冲突问题解决办法

通过#define 重命名命名空间#ifndef __PROTOBUF_PREFIX_H__#define __PROTOBUF_PREFIX_H__#define google my_google #define protobuf my_protobuf#define internal my_internal#define compiler my_compiler#define io my_io#define util my_util#define converter my_conve

2021-10-18 13:39:23 2469

原创 OpenSSL编译错误+CMake

编译调用出现错误# warning: gethostbyname is obsolescent, use getnameinfo() instead.# undefined reference to `getcontext'# undefined reference to `setcontext'# undefined reference to `makecontext'解决方案#cmake添加如下编译选择ADD_DEFINITIONS (-DOPENSSL_NO_ASYNC)ADD_DE

2021-10-18 10:26:46 661

原创 linux常用命令

##

2021-10-12 09:48:48 76

原创 CMake设置使用OpenCV的静态库

#cmake变量BUILD_SHARED_LIB 是一个全局变量set(BUILD_SHARED_LIBS OFF)#例如设置使用opencv的静态库if(NOT DEFINED OpenCV_STATIC) # look for global setting if(NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS) set(OpenCV_STATIC OFF) else() set(OpenCV_STATIC ON)

2021-10-11 13:46:32 1568

原创 CMake调用boost库

CMake调用boost的编译脚本cmake_minimum_required(VERSION 3.14)project(boost_python)set(CMAKE_CXX_STANDARD 11)#指定boost根目录set(BOOST_ROOT E:/local/boost_1_61_0)#设置不适用系统的的boost的库set(BOOST_NO_SYSTEM_PATHS ON)#设置使用静态的boost库set(Boost_USE_STATIC_LIBS ON)#查找boost库

2021-09-28 13:48:15 2208

原创 开发比较好用的开发工具

MobaXterm 远程连接操作linux

2021-09-24 09:38:48 4820

原创 vim常用命令使用

vi操作1.跳到文本的最后一行:按“G”,即“shift+g” gg回到第一行2,跳转到指定的行:命令行模式下输入(n为指定的行号):(1)ngg / nG(2):n(3)vim +n filename(注意这里要输入 + 号)3,文本插入方式...

2021-09-22 17:18:18 138

原创 CMake+VScode+C++目录结构设计

目录结构设计src -------------源文件存放文件夹3rdPart -------------第三方库存放目录bin-------------可执行文件生成目录build -------------中间文件目录doc -------------文档存放目录test -------------测试程序文件夹CMakeLists.txt-------------编写CMake...

2021-09-07 16:31:13 220

原创 听书笔记.

人性的弱点1,知道他的需求,并告诉他如果达到.2,懂得赞美别人.批评别人往往会导致适得其反.

2021-09-07 16:02:26 72

原创 数字转汉字大写

std::string numTobig(std::string strA){ std::vector<int> vA; std::string result; map<int, string> num_map; map<int, string> unit_map; num_map.insert(_pair(0, "零")); num_map.insert(_pair(1, "壹")); num_map.insert(_pair(2, "贰")); nu

2021-09-07 10:44:50 108

原创 Linux下编写CMake

cmake_minimum_required(VERSION 3.10)set(PNAME sdk)option(BuildTest "build test" ON)SET(CMAKE_CXX_COMPILER "g++") #设置编译器(可选的有gcc,g++)set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) #设置输出路径set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOUR

2021-09-06 14:27:16 140

原创 C++提高运行效率的操作,性能优化

1.绑定CPU核.为了尽可能地降低多线程间的耦合性以提高速度,我们让不同CPU核心执行不同的线程.2.堆空间使用固定内存.全局堆内存的分配和释放非常慢而且是不确定的。你不能确定内存管理需要消耗多长时间。降低由堆内存碎片(对于执行关键操作的系统尤为重要)造成的内存分配失败的可能性.3.去除冗余计算,提前计算.4.位运算代替乘法和除法操作.5.打开编译优化 ....

2021-08-19 14:37:12 1541

转载 c++单例模式

单例模式#include <iostream>class Singleton{public: ~Singleton(){ std::cout<<"destructor called!"<<std::endl; } static Singleton& get_instance(){ static Singleton instance; return instance; }pri

2021-08-19 11:34:42 46

原创 Linux通过vidpid找到摄像头对应的索引

准备条件安装udev: sudo apt-get install libudev-dev项目引入头文件:#include <libudev.h>项目添加:cmake添加udev库 libudev.so代码实现//get vidpid->index int GetCameraId(int &id,std::string vid,std::string pid){ struct udev *udev = NULL; struct udev_enumer

2021-08-19 11:19:22 1146 4

原创 c++11泛型编程多参数

1,泛型编程多参数情况的处理template <class T, typename... Args>int load_model(T* &member,Args... args) { member = new T(); auto code = member->load("参数", args...); if(M_OK != code) { throw std::string("SDK load error"); } else {

2021-08-13 14:27:18 487

原创 vs编译的程序依赖运行时的问题解决

Visual Studio编译出的应用程序会依赖一些与vs版本相关的动态库,需要安装运行时,系统才能正常运行.需要修改项目的配置属性:为 /MT,如上图所示.

2021-07-28 15:31:55 265

原创 生成支持xp可运行的程序

xp sp3以下的操作系统需要用vs2010工具集xp sp3以上系统例如在MFC的头文件targetver.h加入#define _WIN32_WINNT 0x0501#pragma once// 包括 SDKDDKVer.h 将定义可用的最高版本的 Windows 平台。// 如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h,并将// 将 _WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。#include <WinSD

2021-07-22 13:30:27 170

原创 LNK2005 _DllMain@12 already defined in LIBCMT.lib问题解决

背景CMake自动生成工程,引入以前封装的类和头文件,出现了LNK2005 _DllMain@12 already defined in LIBCMT.lib等问题.解决将头文件:**#include “stdafx.h”**加入到没又此头文件的头文件.附录生成工程的CMakeLists.tx文件CMAKE_MINIMUM_REQUIRED(VERSION 2.6)set(PNAME yourProjectName)project(${PNAME})ADD_DEFINITIONS("-D

2021-07-22 11:24:21 261

原创 MFC或OCX添加自定义消息映射

背景//在编写OCX控件时,在线程中直接调用FireEvent相关的函数,js页面无法正常响应,//只能通过自定义消息映射,通过PostMessage发送消息,界面才能正常收到响应.FireEvent(eventidTakepicEvent, EVENT_PARAM(VTS_I4), lResult);PostMessage(WM_YOUR_EVENT, WPARAM, LPARAM);实现xxxxxCtrl.hprotected: afx_msg LRESULT onResult(WPA

2021-07-22 11:03:56 322

原创 Linux 打包可执行程序与SDK的所有依赖的so库

1.查询依赖so库查询动态库依赖的so库ldd libXXX.soldd yourExe2.拷贝依赖库到指定目录首先根据ldd查询依赖的so库,将依赖的so库拷贝到指定文件夹ldd your_server | awk '{print $3}' | xargs -i cp -L {} /home/name/bin/3.添加依赖库的指定路径#env.sh 指定当前路径为库的查找路径export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH4.pkg

2021-07-21 15:21:25 1032

原创 算法与数据结构-链表LeetCode

链表操作1,链表逆序-a leetcode 206整个链表进行逆序#include<stdio.h>struct ListNode{ int val; ListNode *next; ListNode(int x):val(x),next(NULL){}};class Solution{public: ListNode* reverseList(ListNode*head){ ListNode *new_head=NULL;//指向新链表的头节点的指针 while(

2021-07-19 10:33:26 100 3

原创 opencv图像画圆

将人脸框的矩形改为void drawEllipse(cv::Mat &display, const Rect &faceRect, const cv::Scalar &color, int debounce, float cw, float acw) { static auto origin = faceRect; if(std::abs(origin.left - faceRect.left) > debounce || std::abs(origin

2021-07-16 18:24:42 497 1

原创 windows动态加载dll库

loadLib.h#include<map>#include<Windows.h>#include<functional>#include<memory>#include<iostream>namespace kaa {class LibWrap {public: LibWrap (); ~LibWrap (); unsigned long load(std::string file); template<typen

2021-07-16 15:22:47 553

原创 YUV转换为RGB

void yuv2rgb_nv21(const unsigned char *src, unsigned char *dst, int src_width, int src_height, int src_step, int dst_width, int dst_height, int dst_step) { typedef unsigned char uint8; const uint8* pY; const uint8* pU; const uint8* pV; int Y00, Y01, U

2021-07-09 16:08:50 201

原创 cmake使用中出现动态库找不到的问题

link_directories需要在add_executable和add_library之前否则会导致动态库找不到

2021-07-06 19:20:54 2054 1

jsoncpp.zip

c++ json的操作

2021-08-05

dllproject.zip

linux下,vscode调试,cmak生成c++工程,

2021-07-19

cmake使用文档.pdf

cmake中文使用文档,写的很好分享一下

2021-02-02

creat barcode生成条形码.zip

生成条形码

2021-01-25

MD5使用方式与头文件

md5的头文件与使用方式

2021-01-25

生成二维码代码C++

生成二维码,C++

2021-01-25

DShow头文件和使用方式

摄像头操作

2021-01-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除