UDT源码分析-Linux调试环境搭建 - C语言音视频技术

/ 0评 / 0

工欲善其事,必先利其器,研究一个开源项目 首先要 找到怎么搭建调试环境,这里不是指用 GDB 调试,而是使用集成环境,vs2019 或者 Clion。集成环境更利于初学者去了解一个开源项目,如果你不借助调试,闷着头直接去看源码,会事半功倍。

这里讲几个研究源码的一些技巧跟误区,纯属个人观点。

1,通常不太熟悉编译过程的同学,什么是不太熟悉编译过程,就是如果你经常遇到一些开源项目的编译问题,例如找不到头文件,找不到缺少库,这些问题你只会 google 搜索教程按步奏操作,或者技术群提问,那就是不太熟悉编译过程。

对于不太熟悉编译过程的同学,我推荐是每研究一个开源项目,都把他的 configure (shell脚本)跟 makefile 文件看一遍,看得多了,你就会懂,基本任何编译问题都难不到你,遇到问题直接自己 debug shell 脚本,自己看 makefile 的编译规则 命令,再结合搜索引擎,很容易就搞懂为什么之前会编译失败,而不是网上按教程操作,有时候解决不了 ,有时候能解决,但是解决了也不知道为什么。

2,读代码要讲究方法。源码中通常会有有很多变量,不要一开始就去看头文件,想把里面所有变量都弄清楚是什么。

直接从 main 函数开始读就可以了。遇到不懂的变量再去查头文件,如果头文件里没有说明,自己又理解不了的问其他人,或者 google 搜索,还是解决不了,就可以记下来,我通常会记在博客里面,等某一天你或许就顿悟了,明白那个变量是干嘛的。如果没有记下来,会容易忘记当初还有问题没弄明白。

3,从 main 函数看下去 通常会遇到很多的逻辑分支,这时候要抓重点,想清楚自己要研究的功能,不要被无关的逻辑把思路带跑。通过一个比较核心重要的功能 或者模块,达到 以点带线,以线带面 的效果。



本文先讲解 ubuntu 环境下 udt 调试环境的搭建,因为这个比较简单。

先执行以下 命令 拉取代码:

git clone https://git.code.sf.net/p/udt/git udt-git

然后,需要先搞懂他的 makefile 编译规则,代码如下:

DIRS = src app
TARGETS = all clean install
​
$(TARGETS): %: $(patsubst %, %.%, $(DIRS))
​
$(foreach TGT, $(TARGETS), $(patsubst %, %.$(TGT), $(DIRS))):
    $(MAKE) -C $(subst ., , $@)

上面这个是 主 makefile,比较简单,现在来逐行分析一下。


由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者有任何宝贵意见,可以加我微信 Loken1。QQ:2338195090。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注