Nginx編譯時error: assignment makes pointer from integer without a cast處理
Nginx升級-從nginx-1.8.1到nginx-1.12.2
原來是原始碼編譯安裝的
升級過程中,make時報錯
……
c/http -I src/http/modules \
-o objs/src/http/modules/ngx_http_stub_status_module.o \
src/http/modules/ngx_http_stub_status_module.c
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I /data/pcre-8.37 -I objs -I src/http -I src/http/modules \
-o objs/addon/nginx-sticky-module-1.25/ngx_http_sticky_module.o \
/data/nginx-sticky-module-1.25/ngx_http_sticky_module.c
cc1: warnings being treated as errors
/data/nginx-sticky-module-1.25/ngx_http_sticky_module.c: In function ‘ngx_http_get_sticky_peer’:
/data/nginx-sticky-module-1.25/ngx_http_sticky_module.c:340: error: assignment makes pointer from integer without a cast
make[1]: *** [objs/addon/nginx-sticky-module-1.25/ngx_http_sticky_module.o] Error 1
make[1]: Leaving directory `/data/nginx-1.12.2'
make: *** [build] Error 2
[root@test01 nginx-1.12.2]#
參考網上資料進行檔案修改後成功解決
第一次修改:
ngx_http_sticky_misc.c 的281行修改如下
原
digest->len = ngx_sock_ntop(in, digest->data, len, 1);
改後
digest->len = ngx_sock_ntop(in, sizeof(struct sockaddr_in), digest->data, len, 1);
ngx_http_sticky_module.c檔案也進行修改
第6行新增:
#include <nginx.h>
第340行左右修改(iphp->rrp.current = iphp->selected_peer;)為:
if (peer && selected_peer >= 0) {
ngx_log_debug(NGX_LOG_DEBUG_HTTP, pc->log, 0, "[sticky/get_sticky_peer] peer found at index %i", selected_peer);
#if defined(nginx_version) && nginx_version >= 1009000
iphp->rrp.current = peer;
#else
iphp->rrp.current = iphp->selected_peer;
#endif
但是再次編譯又有新的報錯:
rc/http -I src/http/modules \
-o objs/addon/nginx-sticky-module-1.25/ngx_http_sticky_misc.o \
/data/nginx-sticky-module-1.25/ngx_http_sticky_misc.c
/data/nginx-sticky-module-1.25/ngx_http_sticky_misc.c: In function ‘ngx_http_sticky_misc_md5’:
/data/nginx-sticky-module-1.25/ngx_http_sticky_misc.c:152: error: ‘MD5_DIGEST_LENGTH’ undeclared (first use in this function)
/data/nginx-sticky-module-1.25/ngx_http_sticky_misc.c:152: error: (Each undeclared identifier is reported only once
/data/nginx-sticky-module-1.25/ngx_http_sticky_misc.c:152: error: for each function it appears in.)
cc1: warnings being treated as errors
/data/nginx-sticky-module-1.25/ngx_http_sticky_misc.c:152: error: unused variable ‘hash’
/data/nginx-sticky-module-1.25/ngx_http_sticky_misc.c: In function ‘ngx_http_sticky_misc_hmac_md5’:
/data/nginx-sticky-module-1.25/ngx_http_sticky_misc.c:189: error: ‘MD5_DIGEST_LENGTH’ undeclared (first use in this function)
/data/nginx-sticky-module-1.25/ngx_http_sticky_misc.c:190: error: ‘MD5_CBLOCK’ undeclared (first use in this function)
/data/nginx-sticky-module-1.25/ngx_http_sticky_misc.c:190: error: unused variable ‘k’
/data/nginx-sticky-module-1.25/ngx_http_sticky_misc.c:189: error: unused variable ‘hash’
make[1]: *** [objs/addon/nginx-sticky-module-1.25/ngx_http_sticky_misc.o] Error 1
make[1]: Leaving directory `/data/nginx-1.12.2'
make: *** [build] Error 2
[root@test01 nginx-1.12.2]#
第二次修改:
ngx_http_sticky_misc.c中新增2個模組<openssl/sha.h> 和 <openssl/md5.h>
#include <nginx.h>
#include <ngx_config.h>
#include <ngx_core.h>
#include <ngx_http.h>
#include <ngx_md5.h>
#include <ngx_sha1.h>
#include <openssl/sha.h>
#include <openssl/md5.h>
#include "ngx_http_sticky_misc.h"
之後再重新編譯就不會出錯了。
參考:
1、
2、 https://blog.csdn.net/zbc496218/article/details/52515247
後續文章將主要在公眾號“技術進階與實戰”(WXID:HelloException)釋出,歡迎關注
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-2222363/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [譯] Part 30: Golang 中的Error處理GolangError
- GCC編譯過程(預處理->編譯->彙編->連結)GC編譯
- ISO C++ forbids comparison between pointer and integer [-fpermissive]C++ORB
- AndroidStudio編譯時報錯Error:Please select Android SDKAndroid編譯Error
- Nginx 超時事件的處理機制Nginx事件
- error的處理方式Error
- 編譯安裝nginx時配置開機自啟編譯Nginx
- 麒麟伺服器在編譯Nginx時報錯伺服器編譯Nginx
- [20221227]a mutating table error without a trigger!.txtError
- AndroidKiller反編譯失敗的處理方法Android編譯
- en_concat函式編譯失敗處理函式編譯
- Shell編譯安裝nginx編譯Nginx
- Linux編譯安裝NginxLinux編譯Nginx
- doxygen 宏定義/宏編譯/條件編譯/預處理/預編譯 不處理、忽略條件、分析所有條件、滿足所有條件的方法編譯
- 【譯】 WebSocket 協議第八章——錯誤處理(Error Handling)Web協議Error
- 15-錯誤處理(Error)Error
- 理解 Nginx 在處理請求時的匹配規則Nginx
- 如何編譯執行HanLP自然語言處理包編譯HanLP自然語言處理
- [Flutter翻譯]Flutter without FlutterFlutter
- 使用 Nginx 編譯 Sass 和 ScssNginx編譯CSS
- CentOS 下編譯安裝 NginxCentOS編譯Nginx
- macOS nginx 編譯安裝教程MacNginx編譯
- 如何處理vue-cli3+ts+element-ui 呼叫$message/$alert時的編譯報錯VueUI編譯
- maven編譯遇到"編碼GBK的不可對映字元"警告的處理Maven編譯字元
- 08 Windows批處理之執行編譯後的程式Windows編譯
- keil error:#8:missing closing quote 處理Error
- 023 Given an integer n. get the number of 0, 2, 4 from all the values from [0, n]
- nginx 編譯出現的問題Nginx編譯
- 編譯安裝nginx-php-mysql編譯NginxPHPMySql
- hi-nginx-1.3.4編譯安裝Nginx編譯
- nginx 編譯安裝與配置使用Nginx編譯
- Linux下nginx編譯安裝教程和編譯引數詳解LinuxNginx編譯
- 錯誤處理:如何通過 error、deferred、panic 等處理錯誤?Error
- 大話css預編譯處理(三):基礎語法篇CSS編譯
- 【ERROR】ORA-8103錯誤分析處理Error
- Cnetos7編譯安裝Nginx教程。編譯Nginx
- CentOS 下重新編譯 nginx 新增模組CentOS編譯Nginx
- Nginx 的編譯並打包成二.txtNginx編譯