您好,登錄后才能下訂單哦!
本篇內容主要講解“Nginx編譯時提示error: assignment makes pointer from integer without a cast怎么處理”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“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"
之后再重新編譯就不會出錯了。
到此,相信大家對“Nginx編譯時提示error: assignment makes pointer from integer without a cast怎么處理”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。