C理论到实战

Posted by AlstonWilliams on February 17, 2019

这篇文章中,不会介绍具体的CMake相关的内容,具体的知识,请看文末链接的文章.这篇文章,介绍的是我在打算从头构建一个HTTP服务器时,遇到的问题.

前一段时间,从中学到了很多C编程的知识,最大的收获,就是现在看C代码,不会云里雾里了.然而,当我想仿照Lighttpd来做一个HTTP服务器时,发现之前真是too young, too naive.以为会点C库就走遍天下无敌手了.

在研究Lighttpd的源代码时,发现出现了两个之前没见过的东西,一个是automake,一个是cmake.这两个东西搞得我很懵逼.

Google这两个东西,先用英文搜索,发现文档很少,相关的文章也不多.一度灰心丧气.

后来,分析出,在开发的过程中,应该使用CMake,automake这个GNU AutoTools工具,应该是打包时用的.

于是,就先着重学习CMake.这次尝试在Google上用中文搜索.好幸运,搜索出来的第一篇,就很好的介绍了CMake.

C编程,难点应该是我们用其他高级语言时忽略的一个问题,就是可移植性.现在我们必须处理各种平台之间的不兼容性,比如,库的差异等.即使已经有一些自动化工具,比如上面的Automake已经帮我们做了好多工作,我们开发起来,还是有些困难的.

而C编程,却是现在我必须要学会的一个语言.除去之前的文章介绍的那些原因,更重要的是,很多东西都是用C语言来开发的,比如Redis, Memcached, Nginx, Lighttpd,要想对它们进行定制化开发,就必须深入的了解C编程.

这也是第一次真正的剖析一个成熟的系统,没有什么经验.需要了解一些使用gdb来调试系统的方法.

CMake入门实战:http://hahack.com/codes/cmake/