用nginx-gridfs编译nginx,在编译期间得到mongo-c-driver错误

我试图在Ubuntu 11.10(gcc版本4.6)上使用nginx模块在这里编译带有gridfs支持(nginx-gridfs版本0.8)的nginx(版本1.0.11):

https://github.com/mdirolf/nginx-gridfs 

这里描述的安装说明很简单:

 * Clone the nginx-gridfs repository (`git clone https://github.com/mdirolf/nginx-gridfs`) * Check out the mongo-c-driver submodule (`git submodule init` then `git submodule update`) * Download and unpack the nginx source (from `http://nginx.org/download/nginx-1.0.11.tar.gz`) * Run `./configure` with `--add-module=/path/to/nginx-gridfs/repository` * `make` and `sudo make install` 

这些步骤对我来说很好,我上次在机器上设置nginx-gridfs(大约四个月前在Ubuntu 10.04上,gcc 4.5和nginx版本为1.0.5),但是现在(在新的Ubuntu安装上)一个错误。 ./configure工作正常,但失败:

 /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c: In function 'mongo_count': /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c:939:5: error: missing initializer [-Werror=missing-field-initializers] /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c:939:5: error: (near initialization for 'out.dataSize') [-Werror=missing-field-initializers] /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c: In function 'mongo_simple_int_command': /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c:981:5: error: missing initializer [-Werror=missing-field-initializers] /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c:981:5: error: (near initialization for 'out.dataSize') [-Werror=missing-field-initializers] /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c: In function 'mongo_simple_str_command': /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c:1013:5: error: missing initializer [-Werror=missing-field-initializers] /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c:1013:5: error: (near initialization for 'out.dataSize') [-Werror=missing-field-initializers] /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c: In function 'mongo_cmd_get_error_helper': /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c:1055:5: error: missing initializer [-Werror=missing-field-initializers] /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c:1055:5: error: (near initialization for 'out.dataSize') [-Werror=missing-field-initializers] /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c: In function 'mongo_cmd_ismaster': /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c:1098:5: error: missing initializer [-Werror=missing-field-initializers] /path/to/nginx-gridfs/mongo-c-driver/src/mongo.c:1098:5: error: (near initialization for 'out.dataSize') [-Werror=missing-field-initializers] cc1: all warnings being treated as errors make[1]: *** [objs/addon/src/mongo.o] Error 1 

任何想法为什么会失败?

cc1: all warnings being treated as errors让我相信我可能会向CFLAGS添加-Wno-error ,告诉它不要将警告视为错误来避免此问题。 但是我担心,在这里启用治疗警告作为错误是出于某种原因,而closures它只会使表面上的编辑成功,但实际上并不工作。

任何人都知道这里发生了什么?

使用您的忽略警告方法编译工作,但我实际上会失败连接到数据库与用户名/密码错误在使用中。 对我来说有效的是从头开始构buildmongo以提供更新的libs的nginx构build: http : //pastebin.com/tMsL2eC9

但是这实际上是不够的。 我还必须在nginx-gridfs的子模块中专门查看mongo c驱动程序v0.3.1。 那就是nginx gridfs的v0.8。 V0.3.1 mongo c驱动程序,而新build的mongo版本是从该链接中指定的env引用的。 然后我build立了nginx 1.0.11,没有任何错误,它工作。