[alibaba/tengine]使用xquic 1.6.2时,编译tengine时报错

2024-05-15 990 views
4

使用xquic 1.6.2时,编译tengine时报错,(用xquic 1.6.0时是正常的) tengine 为3.1.0: 编译参数如下: ./configure --prefix=/usr/local/nginx \ --with-xquic-inc="../xquic-1.6.2/include" \ --with-xquic-lib="../xquic-1.6.2/build" \ --with-http_v2_module \ --add-module=./modules/ngx_http_xquic_module \ --with-openssl="../Tongsuo-8.3.2" \ --with-http_realip_module \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-http_gzip_static_module \ --with-stream \ --with-stream_realip_module \ --with-stream_ssl_module \ --with-stream_sni \ --add-module=../ngx_cache_purge-2.5.3 \ --add-module=../ngx_devel_kit-0.3.2 \ --add-module=../headers-more-nginx-module-0.34 \ --add-module=../nginx-module-vts-0.2.2 \ --add-module=./modules/ngx_http_upstream_dynamic_module \ --add-module=./modules/ngx_http_upstream_check_module \ --add-module=./modules/ngx_http_upstream_vnswrr_module \ --with-http_lua_module \ --with-luajit-lib=/usr/local/luajit/lib/ \ --with-luajit-inc=/usr/local/luajit/include/luajit-2.1/ \ --with-ld-opt=-Wl,-lpcre,-rpath,/usr/local/lib \ --with-cc-opt="-I modules/ngx_http_lua_module/src" && make -j2

报错如下: ./modules/ngx_http_xquic_module/ngx_http_xquic.c cc -c -I/usr/local/luajit/include/luajit-2.1/ -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I modules/ngx_http_lua_module/src -DNDK_SET_VAR -I src/core -I src/event -I src/event/modules -I src/os/unix -I src/proc -I ./modules/ngx_http_xquic_module -I ../xquic-1.6.2/include -I ../ngx_devel_kit-0.3.2/objs -I objs/addon/ndk -I ./modules/ngx_http_upstream_check_module -I modules/ngx_http_lua_module/src/api -I ../Tongsuo-8.3.2/.openssl/include -I objs -I src/http -I src/http/modules -I src/http/v2 -I ../ngx_devel_kit-0.3.2/src -I ../ngx_devel_kit-0.3.2/src -I ../ngx_devel_kit-0.3.2/objs -I objs/addon/ndk -I /usr/local/luajit/include/luajit-2.1/ -I src/stream \ -o objs/addon/ngx_http_xquic_module/ngx_xquic_intercom.o \ ./modules/ngx_http_xquic_module/ngx_xquic_intercom.c ./modules/ngx_http_xquic_module/ngx_http_xquic.c: In function ‘ngx_http_xquic_session_process_packet’: ./modules/ngx_http_xquic_module/ngx_http_xquic.c:970:59: error: passing argument 9 of ‘xqc_engine_packet_process’ makes integer from pointer without a cast [-Werror=int-conversion] 970 (xqc_msec_t) recv_time, NULL) != 0) ^~~~
void *

In file included from ./modules/ngx_http_xquic_module/ngx_http_v3_stream.h:14, from ./modules/ngx_http_xquic_module/ngx_xquic.h:12, from ./modules/ngx_http_xquic_module/ngx_http_xquic.h:13, from ./modules/ngx_http_xquic_module/ngx_http_xquic.c:9: ../xquic-1.6.2/include/xquic/xquic.h:1416:34: note: expected ‘xqc_usec_t’ {aka ‘long unsigned int’} but argument is of type ‘void ’ 1416 | uint64_t path_id, xqc_usec_t recv_time, void user_data); | ~~~^~~~~ ./modules/ngx_http_xquic_module/ngx_http_xquic.c:967:9: error: too few arguments to function ‘xqc_engine_packet_process’ 967 | if (xqc_engine_packet_process(qc->engine, (u_char )packet->buf, recv_size, | ^~~~~~~~~ In file included from ./modules/ngx_http_xquic_module/ngx_http_v3_stream.h:14, from ./modules/ngx_http_xquic_module/ngx_xquic.h:12, from ./modules/ngx_http_xquic_module/ngx_http_xquic.h:13, from ./modules/ngx_http_xquic_module/ngx_http_xquic.c:9: ../xquic-1.6.2/include/xquic/xquic.h:1412:11: note: declared here 1412 | xqc_int_t xqc_engine_packet_process(xqc_engine_t engine, | ^~~~~~~~~ cc1: all warnings being treated as errors make[1]: [objs/Makefile:1849: objs/addon/ngx_http_xquic_module/ngx_http_xquic.o] Error 1 make[1]: Waiting for unfinished jobs.... make[1]: Leaving directory '/root/source/tengine' make: *** [Makefile:10: build] Error 2

Snipaste_2023-11-12_23-55-22

回答

8

xquic 1.6.2 修改了接口,稍后我们适配 1.6.2 版本,当前测试过的版本是 xquic 1.6.0,可以先使用 xquic 1.6.0 版本

7

@ff2035 xquic 1.6.2 编译时 cmake 参数增加 -DXQC_NO_PID_PACKET_PROCESS=1 参数,就可以编译通过了

7

duplicate with #1875