标签(空格分隔): code


SLAM是一个大型的项目,而且通常都是基于linux平台的。对于大部分没有linux经验的人来说,如何在linux下拥有vs代码阅读体验就非常重要了。这篇博客就简答的介绍下大型的项目如何阅读,并介绍几个代码阅读、开发神器。

为了能够快速的了解开源项目,可以尝试下面的步骤:

  • 仔细的阅读论文,了解整个项目的原理
  • 下载代码并编译,在编译之前需要认真阅读README,遇到的任何问题可以再github issue上提,也可以查看issues,看是否有人遇到相同的问题
  • 阅读文档,了解大致结构
  • 运行项目的例程,掌握基本的用法
  • 利用IDE 查看类结构(推荐代码阅读软件Understand[破解码:09E58CD1FB79],编辑+调试软件Kdevelop)

Linux下c++开发环境配置

以14.04版本的linux为例(不同的版本的linux配置会有区别),介绍以make,cmake,qmake管理的项目最方便的编译、调试环境配置。对于以cmake,make管理的项目,可以选择kdevelop。对于cmake管理的项目,相对于qtcreator阅读,具有能够在编辑器中创建文件、文件夹,显示项目中所有的文件等便捷之处(感觉和vs一样),而且不需要修改CMakeLists.txt就能够显示项目中所有的文件。当然,如果项目本身就是用qmake管理的,那用qtcreator就很方便了。

Linux下项目阅读神器

这里隆重的推荐Linux下大型项目阅读神器-Understand软件,该软件可以不需要编译、静态分析代码的强大功能。不仅如此,改软件还能够很方便的跳转、查看UML图、项目的Metric视图(了解项目包含哪些部分)、查看函数在哪个文件哪一行被调用(非常的强大)。而且它经过简单的配置以后就能够编译进行编译,不过我还是推荐根据项目的管理工具选择Kdevelop和qtcreator中一个进行编译和开发。

Kdevelop配置

  • 打开项目

  • 字体配置:
    每个人对于字体的大小以及型号都有洗好,Kdevelop可以进行相关的配置,如下图所示:

  • 代码主题配置:

qtcreator配置

  • 打开项目
  • 字体没配置
  • 代码主题设置

Understand强大功能介绍

Linux下如何阅读开源项目的更多相关文章

  1. linux下后台启动springboot项目

    linux下后台启动springboot项目 我们知道启动springboot的项目有三种方式: 运行主方法启动 使用命令 mvn spring-boot:run”在命令行启动该应用 运行“mvn p ...

  2. linux下后台启动springboot项目(转载)

    我们知道启动springboot的项目有三种方式: 运行主方法启动 使用命令 mvn spring-boot:run”在命令行启动该应用 运行“mvn package”进行打包时,会打包成一个可以直接 ...

  3. linux下如何部署php项目?

    linux下部署php项目环境可以分为两种,一种使用Apache,php,mysql的压缩包安装,一种用yum命令进行安装. 使用三种软件的压缩包进行安装,需要手动配置三者之间的关系.apache和p ...

  4. Nginx知多少系列之(五)Linux下托管.NET Core项目

    目录 1.前言 2.安装 3.配置文件详解 4.Linux下托管.NET Core项目 5.Linux下.NET Core项目负载均衡 6.Linux下.NET Core项目Nginx+Keepali ...

  5. 用C写一个web服务器(三) Linux下用GCC进行项目编译

    .container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } .conta ...

  6. Linux下pdf阅读器推荐

    由于需要在pdf文件上做标记,所以自带的文档查看器根本满足了需求,之前去网上查了查,Okular评价挺高,就安装了一个,确实能基本满足我的需求,但是 1.界面感觉还是不太友好,书签栏一直在那. 2.而 ...

  7. 【一】美化Linux终端之oh-my-zsh开源项目

    目录 1.查看系统是否装了zsh 2.安装zsh(系统没有查到zsh,则安装) 3.切换shell为zsh 4.重启Linux 5.安装oh my zsh 6.到此就安装完成 7.更换主题 8.生效主 ...

  8. linux下svn定时更新项目

    方法一.用shell脚本定时更新项目   1.进入网站的根目录,假设项目位置放在/var/www/test cd /var/www/test   2.建立脚本文件update.sh,分两步进行.首先利 ...

  9. Linux 下编译Android-VLC开源播放器详解(附源码下载)

    这两天需要做音视频播放相关的东西,所以重新找了目前android下的解码库.Android自带的解码库支持不全,因此很多第三方播放器都是自带解码器,绝大部分都是使用FFMpeg作为解码库.我11年的时 ...

随机推荐

  1. [UOJ]#33. 【UR #2】树上GCD

    题目大意:给定一棵有根树,边长均为1,对于每一个i,求树上有多少个点对,他们到lca距离的gcd是i.(n<=200,000) 做法:先容斥,求出gcd是i的倍数的点对,考虑长链剖分后从小到大合 ...

  2. 【小小复习·大米饼】

    (一)数位DP模板 ·LIS的数位DP: ·含b进制数个数+数形结合的数位DP ·平衡数的数位DP: (二)网络流问题 ·Edmonds_Karp:(见书)·Dinic(见书)·ISAP(见书)·例题 ...

  3. [BZOJ]1014 火星人prefix(JSOI2008)

    一边听省队dalao讲课一边做题真TM刺激. BZOJ的discuss简直就是题面plus.大样例.SuperHINT.dalao题解的结合体. Description 火星人最近研究了一种操作:求一 ...

  4. python中的赋值操作和复制操作

    之前一直写C#,变量之间赋值相当于拷贝,修改拷贝变量不会改变原来的值.但是在python中发现赋值操作本质是和C++中的引用类似,即指向同一块内存空间.下面通过一个例子说明: p=[0,1,2,3,4 ...

  5. linux退出状态码及exit命令

    Linux提供了一个专门的变量$?来保存上个已执行命令的退出状态码.对于需要进行检查的命令,必须在其运行完毕后立刻查看或使用$?变量.它的值会变成由shell所执行的最后一条命令的退出状态码: [ro ...

  6. Mysql锁机制--索引失效导致行锁变表锁

    Mysql 系列文章主页 =============== Tips:在阅读本文前,最好先阅读 这篇(Mysql锁机制--行锁)文章~ 在上篇文章中,我们看到InnoDB默认的行锁可以使得操作不同行时不 ...

  7. 微信小程序开发 导入文件说没找到.json的问题

    这个真的坑爹 网上的答案也没几个靠谱 说白了就是找个空文件直接创建 然后复制粘贴 反应了这玩意ide不成熟 进去之后直接创了个quick start的源码 也就是我们看的这个网页建议我们下载的源码 老 ...

  8. nginx 网络模型,cpu亲和等优点

    nginx优点1.IO多路复用epollIO多路复用:多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,这里的"复用" 指的是复用同一个线程epollIO多路复用的实现方式 ...

  9. MongoDB 查询分析

    MongoDB 查询分析可以确保我们建议的索引是否有效,是查询语句性能分析的重要工具. MongoDB 查询分析常用函数有:explain() 和 hint(). 使用 explain() expla ...

  10. linux下删除目录及其子目录下某种类型文件

    Linux下,如果想要删除目录及其子目录下某种类型文件,比如说所有的txt文件,则可以使用下面的命令: find . -name "*.txt" -type f -print -e ...