随笔分类 - Programming
摘要:这篇博文由一个 bug 引出了编译链接的整个过程。我们可以看到一个源代码文件最终变成一个可执行文件中间经历了编译和链接两个过程,编译过程又分为预编译,编译,和汇编;预编译阶段主要处理#开头的代码,编译则是进行一些语法分析和优化,最终生成汇编代码,而汇编则是生成机器代码,同时将源文件通过一个叫做可重定位目标文件进行保存。这个可重定位目标文件里面有一个段,叫做符号表段,里面存储了当前源文件的符号(主要是函数,以及一些全局变量)。之后链接过程会分为合并,符号解析,重定位三个阶段。合并主要就是合并.text,.data, .bss段等,其中符号表段合并时由于不同文件之间可能会有一些重名的符号,因此在这一步可能会触发一些隐晦的 bug,重定位则是根据最终合并后的一些数据和函数的地址,将对应的机器码调用地址进行修改。
阅读全文
摘要:介绍thread_local的实现原理
阅读全文
摘要:使用Shader画常见的一次,二次,三角函数
阅读全文
摘要:深入浅出CPU眼中的函数调用过程,最后提供了栈溢出攻击的一种思路。
阅读全文
摘要:从汇编语言的角度介绍了C++原子操作原理
阅读全文
摘要:专业相关,平时经常会使用到opencv的一些函数,目前主要包括Ubuntu系统,Android系统,本篇文章介绍在两个系统下对应的环境配置策略。
阅读全文
摘要:本篇文章从小端序的排列角度介绍了如何保存华为Mate30 pro的深度值,并理解深度值的保存。并且指出,在intel架构上,数据是小端序才会符合一般的代码逻辑。
阅读全文
摘要:Leetcode一个综合考察字符串操作的题,特此记录
阅读全文
摘要:寄存器功能以及汇编指令一览表,公开查阅。
阅读全文
摘要:本篇博文通过一个例子介绍浮点数的本质
阅读全文
摘要:主要介绍了SLAM十四讲中实践部分对于回环检测代码的实现
阅读全文
摘要:特征匹配是许多计算机视觉问题的基础,例如物体识别、图像配准、图像检索、增强现实。在本文中,我们提出了一种基于BRIEF的非常快速的二进制描述符,称为ORB,它具有旋转不变性和抗噪性。通过实验证明,ORB的速度比SIFT快两个数量级,并且同时在许多情况下表现出色。
阅读全文
摘要:本篇博客先是介绍了图像拼接的一般流程,然后给出了自己手写方法和opencv官方代码的对比,最后在探索小节通过阅读opencv的源码解释了为什么动态物体出现时我的会有鬼影,而opencv stich不会,本质上是算法的思想不同。
阅读全文
摘要:主要介绍了使用手写高斯牛顿法和g2o实现曲线拟合的思路。最后对比了一下对于g2o是否提供解析导的速度区别
阅读全文
摘要:使用realsense录制好的.bag数据,先抽取其中的rgb,depth图片,再转换为ElasticFusion可以运行的.klg数据。
阅读全文
摘要:realsense的图片提取
阅读全文
摘要:BundleFusion环境配置
阅读全文
摘要:跑了一下gift的代码
阅读全文