nginx动态库加载出现is not binary compatible问题
Error nginx: [emerg] module "/usr/local/nginx/modules/ngx_http_vhost_traffic_status_module.so" is not binary compatible in /etc/nginx/nginx.conf:6
項目中遇到此問題,原因在于不同的系統中的特性對加載動態庫有影響。
Your nginx binary is already installed through package system and you are only trying to build the module, right?
When building, nginx-module-vts seems to have a different signature than the signature of the existing binary.
The signature string looks like 8,4,8,0011111111010111001111111111111111
Looking at the nginx source, even if you specify the --with-compat(#define NGX_COMPAT 1) option, the singature can vary.
In conclusion, you will have to compile the dynamic module with the same configure options as installed nginx binary.
Thanks.
$ grep 'NGX_COMPAT' objs/ngx_auto_config.h #ifndef NGX_COMPAT #define NGX_COMPAT 1 $ vi src/core/ngx_module.c 177 if (ngx_strcmp(module->signature, NGX_MODULE_SIGNATURE) != 0) { 178 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, 179 "module \"%V\" is not binary compatible", 180 file); 181 return NGX_ERROR; 182 } $ vi src/core/ngx_module.h 21#define NGX_MODULE_SIGNATURE_0 \22 ngx_value(NGX_PTR_SIZE) "," \23 ngx_value(NGX_SIG_ATOMIC_T_SIZE) "," \24 ngx_value(NGX_TIME_T_SIZE) ","25 26 #if (NGX_HAVE_KQUEUE)27 #define NGX_MODULE_SIGNATURE_1 "1"28 #else29 #define NGX_MODULE_SIGNATURE_1 "0"30 #endif31 32 #if (NGX_HAVE_IOCP)33 #define NGX_MODULE_SIGNATURE_2 "1"34 #else35 #define NGX_MODULE_SIGNATURE_2 "0"36 #endif37 38 #if (NGX_HAVE_FILE_AIO || NGX_COMPAT)39 #define NGX_MODULE_SIGNATURE_3 "1"40 #else41 #define NGX_MODULE_SIGNATURE_3 "0"42 #endif43 44 #if (NGX_HAVE_AIO_SENDFILE || NGX_COMPAT)45 #define NGX_MODULE_SIGNATURE_4 "1"46 #else47 #define NGX_MODULE_SIGNATURE_4 "0"48 #endif49 50 #if (NGX_HAVE_EVENTFD)51 #define NGX_MODULE_SIGNATURE_5 "1"52 #else53 #define NGX_MODULE_SIGNATURE_5 "0"54 #endif . . 200 #define NGX_MODULE_SIGNATURE \ 201 NGX_MODULE_SIGNATURE_0 NGX_MODULE_SIGNATURE_1 NGX_MODULE_SIGNATURE_2 \ 202 NGX_MODULE_SIGNATURE_3 NGX_MODULE_SIGNATURE_4 NGX_MODULE_SIGNATURE_5 \ 203 NGX_MODULE_SIGNATURE_6 NGX_MODULE_SIGNATURE_7 NGX_MODULE_SIGNATURE_8 \ 204 NGX_MODULE_SIGNATURE_9 NGX_MODULE_SIGNATURE_10 NGX_MODULE_SIGNATURE_11 \ 205 NGX_MODULE_SIGNATURE_12 NGX_MODULE_SIGNATURE_13 NGX_MODULE_SIGNATURE_14 \ 206 NGX_MODULE_SIGNATURE_15 NGX_MODULE_SIGNATURE_16 NGX_MODULE_SIGNATURE_17 \ 207 NGX_MODULE_SIGNATURE_18 NGX_MODULE_SIGNATURE_19 NGX_MODULE_SIGNATURE_20 \ 208 NGX_MODULE_SIGNATURE_21 NGX_MODULE_SIGNATURE_22 NGX_MODULE_SIGNATURE_23 \ 209 NGX_MODULE_SIGNATURE_24 NGX_MODULE_SIGNATURE_25 NGX_MODULE_SIGNATURE_26 \ 210 NGX_MODULE_SIGNATURE_27 NGX_MODULE_SIGNATURE_28 NGX_MODULE_SIGNATURE_29 \ 211 NGX_MODULE_SIGNATURE_30 NGX_MODULE_SIGNATURE_31 NGX_MODULE_SIGNATURE_32 \ 212 NGX_MODULE_SIGNATURE_33 NGX_MODULE_SIGNATURE_34?
總結
以上是生活随笔為你收集整理的nginx动态库加载出现is not binary compatible问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 注入eval,Function等系统函数
- 下一篇: python数据分析之pandas里的S