Nginx是纯C编写的一个开源服务器,拥有强大的拓展性,用户可以自行编写特定的模块插入到Nginx中实现特定的功能。然而Nginx是一个完全依赖C语言实现的程序,不能满足当前开发需要,于是我们可以通过C++的新特性来对Nginx进行二次开发,使用gcc编译Nginx自身模块,使用C++开发用户模块并通过g++编译,然后使用g++对文件进行链接。
Nginx的自动配置脚本在 ./auto/make文件中,其中包含了编译器,链接器,模块编译的配置信息,我们可以通过更改make文件中的信息实现对Nginx进行混合编译。下面为Nginx中的make文件
更改步骤:
I.增加C++编译器,添加满足C++11特性的flags,确定最终链接器。如图
删除以前LINK这一行,并加入新的代码
CXX = g++ #确定C++的编译器
CXXFLAGS = -std=c++0x -Wall #满足C++11编译要求
LINK = g++ #确定最后的链接器为g++
II.添加编译C++文件的命令信息。如图
因为我们编译C++文件需要使用g++,为了不和gcc冲突,我们添加一条新的命令&