自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(179)
  • 收藏
  • 关注

转载 lua-cjson安装

Lua cjson是一款非常强大的ON库,它可以非常高效地解析和生成ON数据。在Linux下安装Lua cjson并使用它非常简单,本教程将详细介绍安装、配置和使用Lua cjson的过程。LuaRocks是Lua的包管理器,它可以非常方便地安装和管理Lua模块。执行命令后,Lua cjson将自动下载、编译和安装。如果输出类似于“Lua 5.3.x”的版本信息,则表示Lua已经安装完成。如果没有报错,则表示Lua cjson已经安装完成。第三步:安装Lua cjson。第二步:安装LuaRocks。

2023-11-27 18:37:44 394

原创 c++调用Lua(table嵌套写法)

注意:table(键值对结构)嵌套,在取值的时候采用中括号取值,如objs[0]["x"],若key值是字符串,可以写成objs[0].x,但是数字应该只能写中括号的形式。通过c++调用lua接口将数据存储到虚拟栈中,就可以在lua脚本在虚拟栈中取得数据。c++调用lua库,加载lua文件,以下为c++调用lua接口存储数据。

2023-11-21 11:31:50 842

原创 ​调用Lua脚本tostring(xxx)报attempt to call a nil value (global ‘tostring‘

报出attempt to call a nil value (global 'print')错误。或者 luaL_openlibs(L);在自己程序里调用Lua脚本print(xxx)

2023-10-13 18:03:29 1703

原创 eigen3使用cmake配置

在自己的项目中可以添加以下cmake文件(注意名字要对应,其中第一行的Eigen3是与cmake的Eigen3Config.cmake的名字对应,而后面的都要与Eigen3Config.cmake的内容中定义的一致。一般cmake会放在/usr/local/lib/cmake下,但是我的eigen的cmake放在了/usr/lib/cmake下;2,使用cmake进行配置,需要找到eigen的cmake的路径,看他的cmake是怎么写的;3,进入/usr/lib/cmake/eigen3/

2023-05-19 16:52:08 1870

原创 c++ nan或inf

c++ nan inf

2023-03-01 15:13:48 754

转载 C3927 “->“: 非函数声明符后不允许尾随返回类型等错误

C3927 "->": 非函数声明符后不允许尾随返回类型等错误,如下所示:解决方法:在VS2015版本(Visual Studio 2015 Update 2),增加一个编译选项/utf-8,该编译选项的作用就是将源码字符集和执行文件字符集指定为UTF-8。...

2022-04-19 16:49:34 2684 3

转载 彻底明白ip地址,区分localhost、127.0.0.1和0.0.0.0

通俗的了解IP地址是什么对于IP地址,大家并不陌生,特别是在网络访问中我们会经常使用到(平时对域名如百度的www.baidu.com的访问,本质就是对域名所绑定的IP地址的访问),那么IP地址是什么呢?首先,我们要知道网络中的相互访问其实就是在进行两者间的数据传递。就如同送快递一样,快递发出只有知道你的住址信息,才能将快递送到你的手中。而在网络访问时,只有知道你在网络中的地址信息,才能将数据发送到你的设备上。所以,IP地址就是你在网络中的地址信息。与你现实地址不同的是,你的现实地址使用文字表示,而你

2021-05-28 11:28:02 434

转载 ubuntu安装libjasper.so.1,libpng12.so.0

运行环境提示缺少:1,ubuntu安装libjasper.so.1sudo apt-get install software-properties-commonsudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"sudo apt updatesudo apt install libjasper1 libjasper-dev2,ubuntu18.04安装libpng12.s

2021-04-15 16:11:20 2752

原创 ubuntu-安装qt+gdb-imagewatch

安装gdb-imagewatch依赖: Qt5.6+, python3, gdb7.10+支持python3.具体参照https://github.com/csantosbh/gdb-imagewatch的说明.1,下载gdb-imagewatch(后两步很重要,如果执行init失败,可以先去执行update,再执行init,updata)$ git clone https://github.com/csantosbh/gdb-imagewatch$ cd gdb-imagewatch

2021-03-31 22:51:00 581

原创 编译链接错误:对‘vtable for xxxx’未定义的引用

一般是和虚函数有关:函数是否只有声明,但是忘记去实现了;或者在头文件中声明了,cpp文件也实现了,但是cpp文件的相关函数没有写上类名:类::函数()

2021-03-30 16:02:55 1143

转载 ubuntu安装QT

安装qt1.首先从Qt官网上下载Qt的安装包下载网址:http://download.qt.io/archive/qt/如 qt-opensource-linux-x64-5.12.8.run完整下载地址是http://download.qt.io/archive/qt/5.12/5.12.8/qt-opensource-linux-x64-5.12.8.run2. 安装cd 到 qt-opensource-linux-x64-5.12.8.run 文件所在的目录下使用chmod命令给

2021-03-29 19:15:58 1248

原创 ubuntu安装cmake

安装流程cmake官网下载最新的cmake https://cmake.org/download/我们选择下载cmake-3.13.4并解压,并进入到cmake-3.13.4目录下,依次执行下面命令。 sudo ./bootstrap编译:sudo make -j 8后面的8为计算机cpu核心数编译成功后安装:sudo make install #安装安装完毕之后,进行测试:cmake --version安装cmake-guisu

2021-03-29 19:01:39 725 1

原创 语法错误 : 缺少“;”(在“<”的前面)

此时大概率是因为头文件没有包含进来通过错误定位到相应位置,查看是否缺少该函数的头文件,包含进去就ok了!

2021-03-20 15:55:39 884

原创 Qt-textEdit 滚顶条设置&&只读模式

QT里的组件都有属性,很多时候直接修改属性就可以完成我们的简单需求。1,滚动条设置选中组件,在属性里找到QAbstractScrollArea,将下面的水平/竖直属性改成你需要的值即可(下图是需要时自动加入滚动条,还可以设置别的选项)。2,只读模式,直接选中该组件,在属性里找到readOnly,勾选上即可。...

2021-03-15 16:46:19 2431

转载 git设置ssh

先简单说下配置ssh的简单步骤:0.ssh连接过程本地生成的一对秘钥,私钥(~/.ssh/id_rsa)和公钥(~/.ssh/id_rsa.pub) 公钥(~/.ssh/id_rsa.pub)应该保存在远程服务端的已认证的秘钥文件内(~/.ssh/authorized_keys) 连接过程: 1、本地向远程服务端发起连接 2、服务端随机生成一个字符串发送给发起登录的本地端 3、本地对该字符串使用私钥(~/.ssh/id_rsa)加密发送给服务端 4、服务端使用公钥(~/.ssh/.

2021-02-26 11:15:50 3408

转载 vector介绍

转载:https://www.cnblogs.com/youpeng/p/10779019.html介绍vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。 本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全

2021-02-22 14:03:50 1362

转载 Qt获取系统时间并格式化输出

1、格式化输出当前时刻qDebug()<<"currentTime--"<<QTime::currentTime().toString(Qt::ISODate) <<QDateTime::currentDateTime().toString(Qt::ISODate) <<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss:zzz"); .

2021-01-25 18:56:53 2681

转载 std::sort使用

示例:

2021-01-22 10:28:45 127

转载 cvWaitKey

1、函数形式:int cvWaitKey(intdelay=0 );2、函数功能:cvWaitKey()函数的功能是不断刷新图像,频率时间为delay,单位为ms。3、参数: delay———延时的毫秒数。delay<=0时,函数cvWaitKey无限制的等待按键事件,所以显示图像时,需要在cvShowImage("**.bmp",image)后加上cvWaitKey(0),即该程序停在显示函数处,不运行其他代码,直到键盘值为key的响应之后;否则,图像无法正常显示。 del...

2021-01-21 13:44:49 903

转载 c++回调函数

今天讨论下C/C++中的回调函数。在理解“回调函数”之前,首先讨论下函数指针的概念。函数指针(1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种指向函数入口地址的指针称为函数指针。(2)先来看一个Hello World程序:int main(int argc,char* argv[]){...

2021-01-13 10:11:37 1639

转载 回调函数

你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。作者:常溪玲链接:https://www.zhihu.com/question/19801131/answer/13005983来源:知乎...

2021-01-04 15:08:01 86

转载 vs编译调试遇到问题

1.C2589 “(”:“::”右边的非法标记(转载自:https://blog.csdn.net/ldepn/article/details/78647114)2.error LNK2019 :无法解析的外部符号1>api.obj : error LNK2019: 无法解析的外部符号 __imp__WSAGetLastError@0,该符号在函数 "public: int __thiscall CUDTUnited::startup(void)" (?startup@CUDTU...

2020-10-21 10:23:40 591

转载 c/c++中define用法详解及代码示例

c++中define用法define在c++语言中用法比较多,这里对其进行整理。1.无参宏定义无参宏的宏名后不带参数。其定义的一般形式为:#define 标识符 字符串其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。例如:#define MAXNUM 99999这样MAXNUM就被简单的定义为99999。2.有参宏定义C++语言允许宏带有参数。

2020-09-24 13:54:35 5172

原创 cmake静态编译以及安装带有opencv的静态库并调用

搞opencv的静态编译静态编译就是说可以将你编译出来的可执行文件放到没有配置什么环境的电脑里,直接运行; 而动态编译则需要将用到的库文件放到相应位置,windows下将需要的库文件放到根目录即可,linux则需要放到系统路径中。首先明确一点:想做自己写的程序的静态编译,例如写一个关于opencv的代码,首先需要将opencv库进行静态编译,网上有各种教程。windows上将opencv源码进行静态编译,然后通过对vs进行相应的简单配置,就可以生成静态编译的可执行文件。linux上将opencv

2020-08-06 12:02:04 2609

转载 在ubuntu16.04下安装opencv3.4.5(超详细)

一、编译安装1.官网下载sources版本(For Linux):http://opencv.org/releases.html2.解压:unzip opencv-3.4.5.zip3.进入:cd opencv-3.4.5(如果安装的文件在本机上,则先进入此安装包所在路径,比如我的下载到了本机上的c盘中,则进入“cd /mnt/c/opencv-3.4.5”)4.安装cmake工具:sudo apt-get install cmake(在这个地方可能会因为网络的

2020-07-29 14:59:17 753

原创 Open3D+vs配置以及使用教程

Open3d-0.8.0+Cmake+vs20151.下载简要看一下官网:Open3D Home PageGithub主页:Open3D Github注意下载版本,一定要与vs相匹配,官方有相应的说明,eg.vs2019+open3d0.10.0或者vs2015+open3d0.8.0,如果版本不匹配,会出现很多的错误。 我使用的版本是0.8.0,在release里找到相应版本,下载源码,解压缩。Open3D依赖第三方库,但已经将他们作为submodule包含在了3rdparty文件夹.

2020-07-20 18:45:37 5824 4

转载 pip更新方法

(失败了一般用换一种方法就解决了)1,使用python -m pip install --upgrade pip升级失败2,使用python -m pip install -U --force-reinstall pip依然失败3,使用pip install --user --upgrade pip成功升级

2020-07-17 11:51:05 313

转载 Windows和Ubuntu系统之间文件相互复制粘贴

在安装Ubuntu系统后发现与Windows系统的文件不能相互复制,网上查了很多教程,发现都是不能用的,能实现的方法如下所示:第一步: sudo apt-get autoremove open-vm-tools第二步:sudo apt-get install open-vm-tools-desktop然后重启搞定...

2020-07-02 15:05:21 1179 1

转载 PCL编程笔记——Assertion `px != 0' failed.

报错: boost::shared_ptr……Assertion `px != 0' failed.原因:智能指针未初始化。处理:初始化。如PointCloudT::Ptr cloud;编译可通过,但是程序运行时会报出上述错误,经过如下初始化后,报错消失。PointCloudT::Ptr cloud=boost::make_shared <PointCloud...

2020-03-16 18:00:25 941

转载 PCL点云配准

(1)正态分布变换进行配准(normal Distributions Transform)介绍关于如何使用正态分布算法来确定两个大型点云之间的刚体变换,正态分布变换算法是一个配准算法,它应用于三维点的统计模型,使用标准最优化技术来确定两个点云间的最优匹配,因为其在配准的过程中不利用对应点的特征计算和匹配,所以时间比其他方法比较快,对于代码的解析/*使用正态分布变换进行配准的实验 。...

2020-02-25 17:44:10 1923

转载 C++string类常用函数 c++中的string常用函数用法总结

string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常string类的字...

2020-02-21 09:58:42 165

转载 C++构造函数详解(复制构造函数)

转载:https://www.cnblogs.com/raichen/p/4752025.html构造函数是干什么的该类对象被创建时,编译系统对象分配内存空间,并自动调用该构造函数,由构造函数完成成员的初始化工作。故:构造函数的作用:初始化对象的数据成员。构造函数的种类class Complex { private : double m_rea...

2020-02-12 12:31:12 259

原创 VS报错:“Stack around the variable XX was corrupted”

可以运行成功,但是结束时会报错:“Stack around the variable XX was corrupted”第一种解决方案是:项目-属性-配置属性-C/C++-代码生成,将基本运行时检查设置成默认值,原来的值为“两者(/RTC1,等同于 /RTCsu) (/RTC1)”。但是好像会出现另外一种错误:“0x0000005:内存访问冲突”第二种解决方案:原因是程序中的一个字...

2020-02-06 16:46:03 2440

原创 c++如何在两个.cpp文件中使用同一个全局变量

在c/c++中,当创建一个类,将声明和定义分开写的时候,即产生 1.h, 1.cpp, main.cpp 文件的时候,如果想使用一个全局变量m,使m能够在两个.cpp文件中都能使用,则方法如下:1,在1.h头文件中 extern char m[];2,在1.cpp文件中 #include"1.h" char m[6];3,在main文件中,#include“...

2020-02-06 16:36:25 6794

转载 PCA计算点云的法线

我们知道PCA可以用来降维,并使降维后的数据尽可能保持原来的特征。比如二维散乱的点:经过PCA降维后,变成了一维直线,而该直线保证点尽可能分散,变成如下图(跟最小二乘是一样的):具体原理可参考http://blog.codinglabs.org/articles/pca-tutorial.html前面说的是二维降到一维时的情况,假如我们有一堆散乱的三维点云,则可以这样计算法线:1)...

2019-12-20 17:47:38 978 3

转载 PCA的数学原理

lPCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。网上关于PCA的文章有很多,但是大多数只描述了PCA的分析过程,而没有讲述其中的原理。这篇文章的目的是介绍PCA的基本数学原理,帮助读者了解PCA的工作机制是什么。当然我并不打算把文章写...

2019-12-20 17:45:26 178

转载 error C1128: 节数超过对象文件格式限制: 请使用 /bigobj 进行编译

error C1128: 节数超过对象文件格式限制: 请使用 /bigobj 进行编译默认情况下,对象文件最多可存放 65,536 (2^16) 个可寻址的节。/bigobj将该地址容量增加至 4,294,967,296 (2^32)。大多数模块将从来不会生成包含数超过 65,536 的 .obj 文件。但是,计算机生成的代码或大量使用模板库的代可能需要可存放更多节的 .obj 文件。...

2019-12-08 22:43:36 490

转载 error LNK2001: 无法解析的外部符号

折腾一天多,终于在一篇博文上找到了解决方法,感谢博主,特此转载便于后期查询。问题1:conditionalEuclideanClustering无法解析的符号conditional_euclidean_clustering.obj : error LNK2001: 无法解析的外部符号 "public: void __cdecl pcl::ConditionalEuclideanClust...

2019-12-01 23:08:50 3168

转载 C1083: 无法打开包括文件: “stdafx.h”: No such file or directory

将头文件替换掉(建议此种做法,较简单);查看 “stdafx.h” 所包含的内容为:#include <stdio.h>#include <tchar.h>这里只需将你的 ,#include “stdafx.h” 删除掉。更换为 其所包含的内容。也就是:#include <stdio.h>#include <tchar.h>...

2019-11-19 21:16:09 4022

转载 vs error:无法打开源文件“stdafx.h"

解决方法:打开项目–属性–C/C++–常规–附加包含目录–添加 $(ProjectDir)转载:https://blog.csdn.net/Sunshine__love/article/details/78884988

2019-11-19 21:14:01 6100

空空如也

空空如也

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

TA关注的人

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