- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 centos编译ffmpeg和opencv
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考。
2023-05-31 09:02:06
251
原创 python截取浏览器图片
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档python+chrome+selenium截图前言一、准备工作二、使用步骤前言工作需要后台无感截图,采用python+chrome+selenium方式。没有使用phantomjs是因为python后续不支持该模块了 。一、准备工作下载chrome版本。下载指定chrome版本对应的driver程序,该驱动程序需要放置在python.exe同级目录下。下载指定的selenium版本(不同的selenium版本的参数不一.
2022-04-12 10:39:15
1151
原创 lua脚本
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档lua前言一、下载lua二、编译测试代码测试脚本总结前言提示:以下是本篇文章正文内容,下面案例可供参考一、下载lualua下载:试验中下载的是5.2.3,使用其他版本链接时可能会报错找不到符号二、编译该工程文件内容较少,使用的是makefile,若想编译成vs需要查看对应的库文件依赖。本次编译顺带生成动态库,修改src/makefile文件如下LUA_SO=liblua.soLUAC_T= luacLUAC_O= .
2022-03-21 18:08:14
2084
原创 ffmpeg移植到树莓派
ffmpeg移植前言一、准备材料二、编译步骤总结前言提示:这里可以添加本文要记录的大概内容:几年前买了一块树莓派3B+板子,躺在废料堆中好几年,最近在学习ffmpeg相关内容,打算用树莓派实现一个NVR的功能。一、准备材料1.ffmpeg源码:ffmpeg-4.32.x264源码:x264-master3.x265源码:x265-2.74.fdk-aac源码:fdk-aac2.0.1二、编译步骤环境:Ubuntu 16.04编译工具:arm-linux-gnueabihf-1.配
2022-03-18 14:47:28
991
原创 GCC升版本或降版本方法
项目场景:提供其他部门SDK组件,编译crypto库始终编译不过,出现大量未定义的引用。对方机器是arm的服务器,由于是第三方库且在不同机器上出现的问题,暂未投入精力定位,最快的方式就是使用和自己编译环境一致的工具去重新编译。问题描述:使用GCC4.8.5编译crypto库没有问题,使用GCC7.3.0编译出现大量未定义符号,编译服务器为arm架构设备。下载4.8.5GCC版本,使用高版本GCC7.3.0编译4.8.5版本时出现如下问题, 解决方案:解决办法,修改要编译的GCC代码,参考链
2022-02-16 16:26:10
2835
原创 C++ 11 的std::atomic操作
C++11系列工作中遇到的特性文章目录前言一、什么是原子操作?1.1 原子操作std::atomic与互斥量的区别1.2为何需要原子操作std::atomic前言C++ 11 的std::atomic操作。提示:以下是本篇文章正文内容,下面案例可供参考一、什么是原子操作?所谓的原子操作,取的就是“原子是最小的、不可分割的最小个体”的意义,它表示在多个线程访问同一个全局资源的时候,能够确保所有其他的线程都不在同一时间内访问相同的资源。也就是他确保了在同一时刻只有唯一的线程对这个资源进行访问。
2021-09-23 11:16:12
531
原创 C++11的锁问题
使用C++提供的锁,可以摆脱跨平台时带来的问题,以前只开发linux程序,使用linux的锁编程完后,移植到windows平台需要魔改代码。文章目录前言一、Mutex是什么?std::mutex 介绍std::recursive_mutex 介绍std::time_mutex 介绍lock_guard和unique_lock总结前言C++11版本引入了许多锁的内容,开贴记录,以便后面的学习,内容也都是网上摘抄的片段。如有错误的地方再修改。一、Mutex是什么?Mutex 又称互斥量,C++
2021-09-23 11:05:25
1245
原创 pure virtual method called错误定位
项目场景:代码集成三方库后,在程序即将退出时,报错崩溃,程序没有正常退出。提示如下错误:pure virtual method calledterminate called without an active exception使用gdb调试,查看程序堆栈问题描述:问题并不是必现,大多数情况下都能正常执行完,且异常基本都出现在程序即将退出时。崩溃时打印pure virtual method called字面翻译是:纯虚函数被调用。原因分析:奔溃时的打印信息是定位问题的入口。
2021-09-15 08:53:00
3879
原创 编译llvm+clang,使用libclang分析C++代码
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、准备工作二、编译llvm+clang三、使用libclang分析c++代码总结前言使用libclang分析C++代码,得到AST,根据节点遍历,获取所需的特定结构体内容。一、准备工作libclang是在clang编译后的附带产物。clang后续版本中使用了c++11等新的特性。所以要求gcc版本至大于4.8,为了不改变机器环境,编译选择安装到当前路径下。1.升级gcc版本至稳定的7.5,通过源码安装的方式,步骤
2021-05-27 11:29:22
2629
原创 JNI常见类型传参
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、int类型传参二、boolean类型传参三、String类型传参四、数组类型传参总结前言JNI常见的几种类型传参提示:以下是本篇文章正文内容,下面案例可供参考一、int类型传参java中的int和c++中的int类型一致,可以直接使用。JNIEXPORT jint JNICALL Java_com_example_obo_OBOJNI_test_1jni_1api (JNIEnv *env,
2021-05-11 15:50:48
835
原创 安卓jni的使用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言记录在AndroidStudio下java通过jni调用C/C++代码的过程提示:以下是本篇文章正文内容,下面案例可供参考一、jni是什么?jni是什么 不做过多解释,自行百度。二、使用步骤1.方式一:使用Android.mk生成动态库一般在app同级目录下创建JNI目录,在目录下放置源..
2021-05-11 14:52:05
250
原创 安卓下使用valgrind工具定位问题
文章目录前言一、材料二、使用步骤1.阅读README.android2.编写测试代码3.导入设备总结前言valgrind是linux下非常强大的工具,通过 NDK编译,让其在安卓环境下定位C/C++的问题。一、材料wget http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2ndk-r14b二、使用步骤1.阅读README.android#!/bin/shexport NDKROOT=/home/xxxx/android-ndk
2021-04-07 21:00:40
1634
1
原创 C++基础学习六
C++基础学习六多态基本概念多态原理一、pandas是什么?二、使用步骤1.引入库2.读入数据总结多态基本概念父类的引用或者指针指向子类的对象c++支持编译时静态多态和运行时动态多态,运算符重载和函数重载就是编译时多态,而派生类和虚函数实现运行时多态。多态原理提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy .
2020-09-17 19:48:07
98
原创 C++基础学习五
C++基础学习五智能指针继承方式继承中的对象模型继承中的构造和析构继承中的同名成员处理继承中的静态成员处理多继承问题菱形继承智能指针class Person{public: Person(int age) { this->m_Age = age; } void showAge() { cout << "年龄为:" << this->m_Age << endl; } ~Person() { cout << "P
2020-09-16 16:28:09
126
原创 C++基础学习四
C++基础学习四静态成员变量静态成员函数单例模式案例对象模型初探2.读入数据总结在一个类中,若将一个成员变量声明为static,这种成员称为静态成员变量,与一般的数据成员不同,无论建立了多少个对象,都只有一个静态数据的拷贝 ,静态成员变量,属于某个类,所有对象共享 。静态变量,在编译阶段就分配空间,对象还没有创建时,就已经分配空间 。- 静态成员变量必须在类中声明,在类外定义- 静态数据成员不属于某个对象,在为对象分配空间中不包括静态成员所占空间。- 静态数据成员可以通过类名或者对象名来引用.
2020-09-14 15:03:08
124
原创 C++基础学习三
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档C++基础学习三一,构造1构造函数的分类(构造和析构必须在public下才可以调用)2拷贝构造函数调用时机一、pandas是什么?二、使用步骤1.引入库2.读入数据总结一,构造构造函数和析构函数这两个函数是被编译器自动调用的。无论你是否喜欢,对象的初始化和清理工作都是编译器强制我们要做的事情,即使你不提供初始化操作和清理操作,编译器也会给你增加默认的操作,只是这个默认初始化操作不会做任何事情,class Person{publ
2020-09-08 21:30:31
365
原创 C++基础学习二
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档内联函数前言一、C++中宏处理问题?二、内联函数1.内联函数基本概念2.内联函数和编译器总结前言C中经常把短且经常执行的代码段写成宏,而不是写成函数,避免函数调用,在预编译时替换宏,来提升效率提示:以下是本篇文章正文内容,下面案例可供参考一、C++中宏处理问题?1.在C中也会出现,宏看起来像个函数调用,但是会有隐藏一些难以发现的错误。宏函数也没有作用域。#define ADD(x, y) x+y //如果不加括号,有些地
2020-09-03 20:08:43
170
原创 C++基础学习一
C++基础学习双冒号作用域运算符命名空间c++对c语言的增强引用双冒号作用域运算符1.编译器有就近原则,默认选择局部变量#include <iostream>using namespace std;int a = 200;int test(){ int a = 100; cout << "a = " << a << endl;//编译器有就近原则,默认选择局部变量 cout << "a = " << ::a &l
2020-09-03 16:28:17
113
原创 gtest多平台编译
Windows1、从github上down代码:https://github.com/google/googletest (下载release版本的tag包)2、进入googletest文件夹googletest-release-1.8.0\googletest\msvc文件夹,使用VS2013打开gtest.sln,一路默认确定。3、分别在DEBUG和RELEASE版本下编译gest和gtest_main ,编译成功后在 msvc/gtest 下生成debug和release两个文件夹4、g..
2020-08-19 09:48:33
1428
原创 connect函数设置为非阻塞
系列文章目录connect函数设置为非阻塞模式提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言网络编程中socket默认都是阻塞模式,在一些高并发或者多线程任务中,阻塞模式会极大影响效率,以connect为例,如果连接网络有问题,或者服务端不能及时响应连接,导致connect函数阻塞(阻塞时间75s),为避免这种情况,在connect..
2020-08-19 09:45:35
1201
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人