关于开源C/C++程序的二次开发指导

首先环境要有: 一个Linux操作系统, VIM+Ctags ,gcc, gdb,项目源码。

拿到一个项目源码后,最应该先编译运行程序,在Linux终端看看现象!终端里的现象是字符界面,这给我们后续的锁定”开刀“位置提供了很大的便利。界面中打印的语句是否与我们要改的代码功能有较大的联系将是我们观察的重点。锁定一条字符串信息后,使用:

find 路径 | xargs grep "字符串" -Rn

找出该信息在源码中哪个位置出现,用vim打开文件用/xxx进行搜索排查。看看字符串信息的上下文是否与要修改的代码功能相似,从而进行有选择地修改;不相关则跳过接着在剩下的结果中找。如果像看看是哪些函数调用了目标函数,我的方法还是find+ xargs grep 不知道大家还有没有别的好方法(在linux上)。ctags是方便你在看源码时候进行函数跳转跟踪的,很方便。 而gdb则是用来对修改后的程序进行调试 在gdb中用ctrl+x+a进入TUI可以像vc那样显示源码,十分强大和方便。

入职一个月,终于体会到了图形界面对于程序二次开发人员来说真是灭绝人性的东西了!

时间: 2024-09-27 19:51:38

关于开源C/C++程序的二次开发指导的相关文章

rad 上传空间二次开发指导书

1 适用范围 本组件rad组件包的组件,支持.NET Framework 1.1 和 2.0,B/S架构的应用系统. 支持IE.FireFox等多种浏览器. 2 控件功能 点击有上传进度条上传 优点: 1 有ajax的上传实时进度条.对大文件上传 2 对上传文件的大小.种类.上传后的目录保存都封装好了,配制几个属性就行 2.1 高度封装 结构比较简单,已经封装 2.2 使用方法 1 首先安 as装r.a.d UPLOAD 控件,或者安装整个r.a.d control包 2 在开发环境引用这个组件

搭建rtmp直播流服务之4:videoJS/ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)

前面几章讲解了使用nginx-rtmp搭建直播流媒体服务器,以及使用ffmpeg推流到nginx-rtmp服务器,java通过命令行调用ffmpeg实现推流服务,后端的事情到这里就已经全部完成了. 本章讲一下播放器的选用和二次开发,前端的播放器虽然有flex(flash)可以用,但是很遗憾flex接触的并不多,学习成本又太高,那么基于第三方开源的flash播放器二次开发就显得很有必要. 一.几种播放器选择 那么播放器,哪些已经不再更新的和收费的,这里不会介绍,只介绍两种轻量级的开源播放器. 1.

搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)

前面几章讲解了使用 nginx-rtmp搭建直播流媒体服务器; ffmpeg推流到nginx-rtmp服务器; java通过命令行调用ffmpeg实现推流服务; 从数据源获取,到使用ffmpeg推流,再到nginx-rtmp发布流,后端的服务到这里就已经全部完成了. 如果这里的流程没走通,那么这里的播放器也是没办法播放实时流的. 本章讲一下播放器的选用和二次开发,前端的播放器虽然有flex(flash)可以用,但是很遗憾flex接触的并不多,学习成本又太高,那么基于第三方开源的flash播放器二

什么是php二次开发,怎么做php二次开发?

什么是php二次开发 所谓的二次开发,简单的说就是修改别人的东西,变成你想要的东西,插件基本属于高端了,根据现有的程序的不足,加以改进修饰,然后达到自己想要实现的功能和效果. 怎么做php二次开发 二次开发和一次开发不同的地方在于你是要先看懂别人的代码再去做,二次开发,首先你需要知道自己对什么程序进行二次开发,比如一些招聘信息上会写Discuz二次开发,ShopEX二次开发.这些都是对已经成型的程序进行的功能性扩展开发. 第一,你要有这个开 源 产 品的所用语言的语言基础,就是能看懂代码是最基本

美客分销商城-接力购源码系统,全开源代码可进行二次开发,微信小程序分销商城

1. 准备服务器.域名(SSL证书).认证的微信小程序.微信支付商户号 2. 系统功能简介 三.演示案例,微信扫码查看 四.后台管理系统 五. 全套开源源码,进行二次开发 六.本系统完美运营,全套代码(后台管理系统+微信小程序前端) 请联系QQ:448234017,或者扫码加微信了解更多 原文地址:https://www.cnblogs.com/beyang/p/10386394.html

数据层交换和高性能并发处理(开源ETL大数据治理工具--KETTLE使用及二次开发 )

ETL是什么?为什么要使用ETL?KETTLE是什么?为什么要学KETTLE? ETL是数据的抽取清洗转换加载的过程,是数据进入数据仓库进行大数据分析的载入过程,目前流行的数据进入仓库的过程有两种形式,一种是进入数据库后再进行清洗和转换,另外一条路线是首先进行清洗转换再进入数据库,我们的ETL属于后者. 大数据的利器大家可能普遍说是hadoop,但是大家要知道如果我们不做预先的清洗和转换处理,我们进入hadoop后仅通过mapreduce进行数据清洗转换再进行分析,垃圾数据会导致我们的磁盘占用量

开源系统_二次开发(转)

转自http://www.phpchina.com/portal.php?mod=view&aid=40204, 更多详细资料请参看原文 最好最实用的二次开发教程 ◆二次开发 什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一 般来说都不会改变原有系统的内核. 为什么要二次开发? 随着信息化技术的不断发展,IT行业涌现出了一系列优秀的开源作品,其作者或是个人,或是项目小组,或 是软件公司.选择和应用这些优秀的开源软件,并在此基础上进行

【转】Java开源项目源码阅读方法及二次开发方法

一直以来,都想要阅读某些Java开源项目的源代码,甚至想要修改某些代码,实现对开源项目进行二次开发的目的.但总是不知从何入手,直接将开源项目的源代码导入Eclipse,总是会报很多错误,而无法编译.可以直接通过Eclipse打开开源项目的源代码,至少能够达到可视化源码阅读.源码导航的目的,还是能在一定程度上解决源码阅读不爽的问题,因为直接打开并没有改变源文件项目的目录结果,对于修改过后的代码,可以通过命令行找到源文件项目目录,并使用mvn或者ant对项目进行编译,再查看修改后的项目是否正确. 由

浅析PHP的开源产品二次开发的基本要求

浅析PHP的开源产品二次开发的基本要求 第一, 基本要求:HTML(必须要非常熟悉),PHP(能看懂代码,能写一些小系统,如:留言板,小型CMS),Mysql(至少会一种数据库),Javascript(能看懂,能改现成的一些代码),Div+Css(能进行界面的调整,明白CSS是怎么使用的) 第二, 熟悉开源产品的使用,比如 Dedecms,你要知道怎么登录,怎么新建栏目,怎么添加文章,模板标签的使用方法,模型的概念和使用方法等等一些功能 第三, 要熟悉这个开源产品的数据库结构,还要理解里面核心文