报错信息如下:
/usr/bin/ld: objs/addon/nginx-plugin-master/ngx_http_yunsuo_module.o:/www/server/nginx-plugin-master/ngx_http_yunsuo_module.c:191: multiple definition of
ngx_http_top_header_filter'; objs/src/http/ngx_http.o:/www/server/nginx/src/src/http/ngx_http.c:74: first defined here /usr/bin/ld: objs/addon/nginx-plugin-master/ngx_http_yunsuo_module.o:/www/server/nginx-plugin-master/ngx_http_yunsuo_module.c:192: multiple definition of
ngx_http_top_body_filter'; objs/src/http/ngx_http.o:/www/server/nginx/src/src/http/ngx_http.c:75: first defined here模块是从云锁官网下载的,以前也安装过,所以模块应该是没问题的,
但是如果是增加云锁的模块单独安装nginx,也是一点问题也没有,在网络搜索了好久,没有找到差不多的问题解决办法。
于是找到了个AI助手,把报错信息复制过去,还真给出了解决思路。
AI助手给出的解决方案:
这个错误是由于nginx编译时出现了多个定义相同的符号`ngx_http_top_header_filter`和`ngx_http_top_body_filter`导致的。要解决这个问题,你可以按照以下步骤进行操作:
1. 检查你的项目中是否存在重复包含文件或者重复定义的模块。特别是在`objs/addon/nginx-plugin-master/ngx_http_yunsuo_module.c`和`objs/src/http/ngx_http.c`两个文件中的定义。
2. 如果确保两个文件中的定义是必须的,那么可能是因为在编译时链接了重复的模块。你可以检查Makefile或编译脚本中的链接选项,确保只链接需要的模块。
3. 如果不确定哪个模块是导致重复定义的原因,可以尝试注释掉一个模块的编译选项,重新编译并查看是否还会出现错误。
4. 如果以上方法都没有解决问题,你可以考虑升级或重新编译nginx,并确保使用的是最新的稳定版本。
希望以上方法可以帮助你解决问题。如果问题仍然存在,请提供更多的信息,以便我可以提供更详细的帮助。
根据以上方案排查了多余的定义,直接注释掉,然后重新编译,可以正常的生成nginx文件
最后测试,云锁的功能也正常,可以识别nginx,拦截功能也正常。