3.9.2 程序中的符号转换

C语言与C++语言最大的不同在于编译后的符号有差别(C++为了支持多种面向对象特性,如重载、类等,编译后的方法名与C语言完全不同),这可以通过C++语言提供的extern"C"{}来实现符号的互相识别。也就是说,在C++语言开发的模块中,include包含的Nginx官方头文件都需要使用extern"C"括起来。例如:


extern"C"{

include<ngx_config.h>

include<ngx_core.h>

include<ngx_http.h>

}


这样就可以正常地调用Nginx的各种方法了。

另外,对于希望Nginx框架回调的类似于ngx_http_mytest_handler这样的方法也需要放在extern"C"中。