自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 ORB-SLAM2 程序解读

ORB-SLAM是由Raul Mur-Artal,J. M. M. Montiel和Juan D. Tardos于2015年发表在IEEE Transactions on Robotics。项目主页网址为:http://webdiis.unizar.es/~raulmur/orbslam/。   ORB-SLAM是一个基于特征点的实时单目SLAM系统,在大规模的、小规模的、室内室外的环境都可以运...

2018-12-31 21:26:53 11326 6

转载 c++中static的用法详解

转自:http://blog.csdn.net/majianfei1023/article/details/45290467C 语言的 static 关键字有三种(具体来说是两种)用途:1. 静态局部变量:用于函数体内部修饰变量,这种变量的生存期长于该函数。[cpp] view plain copyint foo(){      static int i = 1; // note:1      /...

2018-05-11 11:54:39 347

转载 Eigen库 欧拉角、旋转矩阵、四元数之间的相互转换

#include <iostream>    #include <Eigen/Core>  #include <Eigen/Geometry>  #define PI (3.1415926535897932346f)    int main(int argc, char **argv)   {      using ::std::cout;      using...

2018-04-10 11:29:50 4524

转载 使用std::function作为函数入参

1. 关于std::function()在C语言的时代,我们可以使用函数指针来吧一个函数作为参数传递,这样我们就可以实现回调函数的机制。到了C++11以后在标准库里引入了std::function模板类,这个模板概括了函数指针的概念函数指针只能指向一个函数,而std::function对象可以代表任何可以调用的对象,比如说任何可以被当作函数一样调用的对象。当你创建一个函数指针的时候,你必须定义这个...

2018-03-24 12:13:00 11081

转载 C++ std::function的用法

类模版std::function是一种通用、多态的函数封装。std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lambda表达式、函数指针、以及其它函数对象等。std::function对象是对C++中现有的可调用实体的一种类型安全的包裹(我们知道像函数指针这类可调用实体,是类型不安全的)。通常std::function是一个函数对象...

2018-03-24 11:21:42 40389 2

转载 cartographer笔记

cartographer采取的是图优化框架,基于google的Ceres构建problem优化,4线程后端优化。1.运动预测部分 catographer利用IMU构建预测模型,ScanMatcher与Odom(可选)构建观测模型,采取UKF进行运动预测。 2.ScanMatcher部分cartographer采取的双搜索方式进行,先用一次real-time correlative scan mat...

2018-03-23 22:00:50 901

转载 c语言程序的存储区域与const关键字的使用方法

一.C语言程序的存储区域1.由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程则将各个源文件生成的二进制机器代码文件组合成一个文件。2.C语言编写的程序经过编译-连接后,将形成一个统一文件,它由几个部分组成。在程序运行时又会产生其他几个部分,各个部分代表了不同的存储区域:1&g...

2018-03-18 20:48:33 345

转载 linux下添加动态库链接的方法

Linux共享库路径配置  Linux下找不到共享库文件的典型现象为明明已经安装某个软包(如libnet,MySQL),编译连接可以正常进行,但是在运行时出现如“error while loading shared libraries: libnet.so.1:cannot open shared object file :No such file or directory”的错误提示。  原因是...

2018-03-16 22:45:20 933

原创 linux利用gdb和gdbserver调试程序

参考博客:                https://www.cnblogs.com/lidabo/p/4499011.html              https://www.cnblogs.com/veryStrong/p/6240769.html              http://www.cnblogs.com/veryStrong/p/6240775.html   (GDB调试...

2018-03-16 15:12:45 441

原创 linux安装CodeBlocks

最简单的办法,只需三步搞定sudo apt-get install build-essentialsudo add-apt-repository ppa:pasgui/ppasudo apt-get install codeblocks

2018-03-16 10:17:27 1729

转载 linux动态库与静态库的创建和优缺点比较

动态库与静态库优缺点比较linux下的库有两种:静态库和共享库(动态库)。 二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。我们在编写一个 C 语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响...

2018-03-15 12:23:58 570

原创 将Visual Studio编译器默认为X64

一般安装的vs,当新建一个项目时,默认的是在x86上编译,而我们现在用的系统几乎都是64位系统,这时往往要手动修改配置管理器,难免有点麻烦,那么如何让Visual Studio编译器默认为x64呢?可以修改VS安装目录下:Microsoft Visual Studio 12.0\VC\VCWizards里面的三个文件:default.vcxproj、DefaultTest.vcxproj、vcup...

2018-03-12 11:33:33 6021

转载 Linux 下c获取当前时间(精确到秒和毫秒或者微秒)

获取当前的时间的秒数和微秒数本方法需要用到gettimeofday()函数,该函数需要引入的头文件是 sys/time.h 。函数说明int gettimeofday (struct timeval * tv, struct timezone * tz)1、返回值:该函数成功时返回0,失败时返回-1 2、参数 struct timeval{ long tv_sec; //秒 long tv_use...

2018-03-09 12:20:39 4048

转载 C++11 std::chrono库详解

  所谓的详解只不过是参考www.cplusplus.com的说明整理了一下,因为没发现别人有详细讲解。  chrono是一个time library, 源于boost,现在已经是C++标准。话说今年似乎又要出新标准了,好期待啊!   要使用chrono库,需要#include<chrono>,其所有实现均在std::chrono namespace下。注意标准库里面的每个命名空间代表...

2018-03-09 12:15:34 411

原创 ubuntu下源码升级CMake3.5的方法

把之前的cmake卸载sudo apt-get install build-essential //如果系统已安装build-essential则不需要执行此步骤wget http://www.cmake.org/files/v3.5/cmake-3.5.1.tar.gztar xf cmake-3.5.1.tar.gzcd cmake-3.5.1./configuremakesudo make ...

2018-02-27 11:38:53 1429

转载 ros::spin() ros:;spinOnce() 及多线程订阅

参考:http://blog.csdn.net/yaked/article/details/50776224单线程Spinningros::spin()是最简单的单线程自旋, 它会一直调用直到结束用法:  ros::spin();另一个单线程spinning是ros::spinOnce(),它定期调用等待在那个点上的所有回调用法:  ros::spinOnce();简单的我们自己实现一个用法相同的...

2018-02-26 09:34:50 4317

转载 四元数与欧拉角(RPY角)的相互转换

RPY角与Z-Y-X欧拉角  描述坐标系{B}相对于参考坐标系{A}的姿态有两种方式。第一种是绕固定(参考)坐标轴旋转:假设开始两个坐标系重合,先将{B}绕{A}的X轴旋转γγ,然后绕{A}的Y轴旋转ββ,最后绕{A}的Z轴旋转αα,就能旋转到当前姿态。可以称其为X-Y-Z fixed angles或RPY角(Roll, Pitch, Yaw)。  Roll:横滚  Pitch: 俯仰Yaw: 偏...

2018-02-24 14:52:34 9984 1

转载 C++中的STL中map用法详解

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识

2018-02-06 11:53:35 211

转载 C++11 std::bind std::function 高级用法

从最基础的了解,std::bind和std::function[cpp] view plain copy/*   * File:   main.cpp  * Author: Vicky.H  * Email:  eclipser@163.com  */  #include   #include   #include

2018-02-06 10:57:38 288

转载 C++11 Lambda表达式

C++ 11 Lambda表达式C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python等。今天,我们就来简单介绍一下C++中Lambda表达式的简单使用。

2018-02-06 10:32:58 152

转载 C++ 11 Lambda表达式

C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python等。今天,我们就来简单介绍一下C++中Lambda表达式的简单使用。声明Lambda表达式Lambda表达式完整

2018-02-02 17:00:24 176

转载 C++ 11 std::function std::bind使用

cocos new 出新的项目之后,仔细阅读代码,才发现了一句3.0区别于2.0的代码:auto closeItem = MenuItemImage::create( "CloseNormal.png", "Clos

2018-02-02 16:48:55 396

原创 Linux压缩解压文件夹、文件——tar

常用命令:单个文件压缩打包 tar czvf my.tar file1多个文件压缩打包 tar czvf my.tar file1 file2,...单个目录压缩打包 tar czvf my.tar dir1多个目录压缩打包 tar czvf my.tar dir1 dir2解包至当前目录:tar xzvf my.tar

2018-01-30 14:43:50 1340

原创 gtest谷歌测试框架

Google C++单元测试框架---Gtest框架简介(译文)               https://www.cnblogs.com/jycboy/p/6057677.htmlGoogle Test(GTest)使用方法和源码解析——断言的使用方法和解析http://blog.csdn.net/breaksoftware/article/details/51059406

2018-01-30 09:38:18 441

转载 "undefined reference to" 问题汇总及解决方法

转载地址: https://segmentfault.com/a/1190000006049907?utm_source=tuicool&utm_medium=referral在实际编译代码的过程中,我们经常会遇到"undefined reference to"的问题,简单的可以轻易地解决,但有些却隐藏得很深,需要花费大量的时间去排查。工作中遇到了各色各样类似的问题,按

2018-01-30 09:32:49 35055 1

转载 在Linux中静态库.a和动态库.so 的创建和使用

我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。 1. 静态函数库     这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为

2018-01-29 16:17:43 174

转载 CMake命令大全——CMake构建系统的骨架

转自:http://www.cnblogs.com/coderfenghc/archive/2012/06/16/CMake_ch_01.html#2996205)CMD#1: add_custom_command为生成的构建系统添加一条自定义的构建规则。add_custom_command命令有两种主要的功能;第一种是为了生成输出文件,添加一条自定义命令。ad

2018-01-27 10:56:14 998

转载 静态库链接动态库时,如何使用该静态库

转自:http://blog.csdn.net/newchenxf/article/details/51735600网上有各种静态库的创建&使用的例子,但都是超级简单的例子,比如,静态库,就直接来个printf(),就完事了! 其实,实际使用时,静态库会复杂很多,比如会调用很多其他的动态库。 下图就是个例子: 假设libXXX.a用了libpthread

2018-01-26 11:43:04 255

转载 add_library,target_link_libraries,set_target_properties,target_link_libraries使用联系

转自:http://blog.csdn.net/michaelhan3/article/details/69568362先列出我的CmakeLists.txt注意,在CmakeLists.txt 里,注释用的是#project(Camera_sugan)         #工程名字cmake_minimum_required(VERSION 2.6)

2018-01-24 10:46:30 643

转载 link_directories, LINK_LIBRARIES, target_link_libraries使用总结

转自:http://blog.csdn.net/arackethis/article/details/43488177链接:http://blog.csdn.net/ktigerhero3/article/details/70313350   多目录工程的CmakeLists.txt编写(自动添加多目录下的文件)总结一下include_directories,link_

2018-01-24 10:27:19 702

原创 CMake中预定义的一些变量名

PROJECT_SOURCE_DIR 工程的根目录PROJECT_BINARY_DIR 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/buildCMAKE_INCLUDE_PATH 环境变量,非cmake变量CMAKE_LIBRARY_PATH 环境变量CMAKE_CURRENT_SOURCE_DIR 当前处理的CMakeLists.txt所在的路径

2018-01-22 16:41:14 517

转载 程序、进程、线程的区别与联系

程序并不能单独执行,只有将程序加载到内存中,系统为他分配资源后才能够执行,这种执行的程序称之为进程,也就是说进程是系统进行资源分配和调度的一个独立单位,每个进程都有自己单独的地址空间。所以说程序与进程的区别在于,程序是指令的集合,是进程运行的静态描述文本,而进程则是程序在系统上顺序执行时的动态活动。但是进程存在着很多缺陷,主要集中在两点: (1).进程只能在同一时间干一件事情,如果想同时干两件事或

2018-01-19 12:32:36 159

转载 cmake指令详解

所需文件名:CmakeLists.txt,在需要操作的每个目录下都需要PROJECT(工程名字)    这条指令会自动创建两个变量:_BINARY_DIR(二进制文件保存路径)    _SOURCE_DIR(源代码路径)cmake系统也帮助我们预定义了PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR其值与上述对应相等 SET(变量名 变量值)    SET(VAR [VA

2018-01-18 20:07:59 476

转载 gcc/g++ 链接库的编译与链接

程序编译一般需要经预处理、编译、汇编和链接几个步骤。在实际应用中,有些公共代码需要反复使用,就把这些代码编译成为“库”文件。在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中,这种库称为静态(链接)库,其特点是可执行文件中包含了库代码的一份完整拷贝,缺点是被多次使用就会多份冗余拷贝。还有一种库,就是程序在开始运行后调用库函数时才被载入,这种库独立于现有的程序,其本身不可执行,但

2018-01-16 20:41:14 505

转载 Linux下gcc编译中关于头文件与库文件搜索路径相关问题

如何指定 GCC 的默认头文件路径网上偶搜得之,以之为宝:) 原地址: http://blog.chinaunix.net/u/28781/showart.php?id=401631===============================================================================在交叉编译的时候我们需要用到其他的库

2018-01-15 20:52:31 275

转载 生成可执行文件过程

C语言编译全过程    编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。    编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、

2018-01-13 17:42:11 931

转载 C++静态库与动态库

这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库

2018-01-11 14:47:27 155

转载 gcc编译动态和静态链接库

我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。 第1步:编辑得到举例的程序--hello.c和test.c;

2018-01-11 11:49:35 124

转载 Cmake的介绍和使用 Cmake实践

Cmake优点:1.       开发源代码,实用类BSD许可发布。2.       跨平台,并可以生成native编译配置文件,在linux/unix平台,生成makefile,在mac平台可以生成xcode,在windows平台可以生成msvc工程的配置文件。3.       能够管理大型项目4.       简化编译构建过程和编译过程,只需要cmake+mak

2018-01-08 14:32:42 183

转载 "undefined reference to" 问题解决方法

最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func'     关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1.  链接时缺失了相

2018-01-05 16:14:49 616

空空如也

空空如也

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

TA关注的人

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