使用c++/c++11开发nginx模块时的两种编译方法

本文介绍了两种在C++/C++11环境下开发nginx模块的编译方法:一是修改auto/make脚本,二是直接编辑Makefile文件。对于nginx版本1.10.1,在方法一中需调整addons sources部分的代码;而在方法二中,需在configure后修改obj目录下的Makefile。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用c++开发nginx模块时的两种编译方法
Nginx本身只支持使用C语言开发模块,如果我们需要使用C++,那么必须修改源码里的编译脚本
首先,我们不能使用g++编译Nginx自身的C代码,因为C++的语法比C严格很多,而Nginx代码用到了很多C语言的“边角”特性,直接使用g++编译会报大量错误
正确的做法是使用gcc来编译nginx源码,而使用g++来编译我们自己的C++代码,两者可使用文件扩展名区分(*.c和*.cpp),最后使用g++链接所有的目标文件,如果使用其他第三方库
(如boost),可以在configure时用--with-ld-opt参数,
在运行configure时,会调用auto/make这个脚本来生成Makeile, 此Makefile决定了源码的编译链接方式  

方法一:修改auto/make脚本

1、链接器LINK改用g++
2、增加C++编译器和编译选项,启用C++11标准
3、生成编译命令时用扩展名区分C源码和C++源码

具体做法(此处nginx版本为1.10.1):

#LINK =  $LINK    					#26行,注释掉原链接器
CXX = g++							#新增C++编译器
CXXFLAGS = -std=c++0x -Wall			#新增C++编译选项,启用C++11,此处可以添加更多参数
LINK = g++							#新增C++链接器

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值