sanxia330 发表于 2017-01-06 15:03

MacOSXEI 编译fastdfs-nginx-module,error: format specifies type 'long' but th...

操作系统环境:
Mac OS X EI Capitan 10.11.6

软件环境:
Nginx V1.10.2
fastdfs V5.05
libfastcommon-master
fastdfs-nginx-module V1.16

libfastcommon和fastdfs均安装成功,且fastdfs配置正确,服务可以正常启动,upload_test 文件上传也测试通过。

在把fastdfs-nginx-module编译进nginx:
one: ./configure --prefix=/usr/local/nginx--add-module=/usr/local/download/fastdfs-nginx-module/src(这一步通过)
tow: make (在这一步失败)
问题出现在,出现以下异常提示:

-o objs/addon/src/ngx_http_fastdfs_module.o \
      /usr/local/download/fastdfs-nginx-module/src/ngx_http_fastdfs_module.c
In file included from /usr/local/download/fastdfs-nginx-module/src/ngx_http_fastdfs_module.c:6:
/usr/local/download/fastdfs-nginx-module/src/common.c:438:33: error: format specifies type 'long' but the argument has type 'int64_t'
      (aka 'long long') [-Werror,-Wformat]
                        "bytes="INT64_PRINTF_FORMAT, range->start);
                                                   ^~~~~~~~~~~~
/usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf'
__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)
                                                       ^
In file included from /usr/local/download/fastdfs-nginx-module/src/ngx_http_fastdfs_module.c:6:
/usr/local/download/fastdfs-nginx-module/src/common.c:443:36: error: format specifies type 'long' but the argument has type 'int64_t'
      (aka 'long long') [-Werror,-Wformat]
                        "bytes="INT64_PRINTF_FORMAT"-", range->start);
                                                      ^~~~~~~~~~~~
/usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf'
__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)
                                                       ^
In file included from /usr/local/download/fastdfs-nginx-module/src/ngx_http_fastdfs_module.c:6:
/usr/local/download/fastdfs-nginx-module/src/common.c:449:4: error: format specifies type 'long' but the argument has type 'int64_t'
      (aka 'long long') [-Werror,-Wformat]
                        range->start, range->end);
                        ^~~~~~~~~~~~
/usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf'
__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)
                                                       ^
In file included from /usr/local/download/fastdfs-nginx-module/src/ngx_http_fastdfs_module.c:6:
/usr/local/download/fastdfs-nginx-module/src/common.c:449:18: error: format specifies type 'long' but the argument has type 'int64_t'
      (aka 'long long') [-Werror,-Wformat]
                        range->start, range->end);
                                    ^~~~~~~~~~
/usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf'
__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)
                                                       ^
In file included from /usr/local/download/fastdfs-nginx-module/src/ngx_http_fastdfs_module.c:6:
/usr/local/download/fastdfs-nginx-module/src/common.c:458:27: error: format specifies type 'long' but the argument has type 'int64_t'
      (aka 'long long') [-Werror,-Wformat]
                "/"INT64_PRINTF_FORMAT, range->start, range->end, file_size);
                                        ^~~~~~~~~~~~
/usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf'
__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)
                                                       ^
In file included from /usr/local/download/fastdfs-nginx-module/src/ngx_http_fastdfs_module.c:6:
/usr/local/download/fastdfs-nginx-module/src/common.c:458:41: error: format specifies type 'long' but the argument has type 'int64_t'
      (aka 'long long') [-Werror,-Wformat]
                "/"INT64_PRINTF_FORMAT, range->start, range->end, file_size);
                                                      ^~~~~~~~~~
/usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf'
__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)
                                                       ^
In file included from /usr/local/download/fastdfs-nginx-module/src/ngx_http_fastdfs_module.c:6:
/usr/local/download/fastdfs-nginx-module/src/common.c:458:53: error: format specifies type 'long' but the argument has type 'int64_t'
      (aka 'long long') [-Werror,-Wformat]
                "/"INT64_PRINTF_FORMAT, range->start, range->end, file_size);
                                                                  ^~~~~~~~~
/usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf'
__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)
                                                       ^
7 errors generated.
make: *** Error 1
make: *** Error 2

貌似是有些数据类型不匹配,不知道有谁遇见过类似的错误。


happy_fish100 发表于 2017-01-10 21:11

这个问题已经修复了。从github获取最新代码即可。
github地址:https://github.com/happyfish100/fastdfs-nginx-module

woaimaidong 发表于 2017-01-12 17:51

{:qq11:}感谢版主!!!

woaimaidong 发表于 2017-01-12 18:16

刚刚对比上一版本,弄明白是啥原因了。
再次感谢版主,受益非浅!
页: [1]
查看完整版本: MacOSXEI 编译fastdfs-nginx-module,error: format specifies type 'long' but th...