我试图在Ubuntu 11.10 (gcc版本4.6)上使用nginx模块编译具有gridfs支持的nginx (版本1.0.11) (nginx版本0.8):
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 (大约四个月前在Ubuntu10.04上,gcc 4.5和nginx版本1.0.5),这些步骤对我来说很好,但是现在(在一个新的Ubuntu安装上)我得到了一个错误。./configure运行良好,但make在以下方面失败:
/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使我相信,我可以将-Wno-error添加到CFLAGS中,告诉它不要将警告视为错误,以避免此问题。但我担心,在这里启用警告作为错误是有原因的,关闭它只会使编译在表面上成功,但实际上行不通。
有人知道这是怎么回事吗?
发布于 2012-01-03 16:35:14
使用忽略警告方法可以完成编译工作,但实际上,如果使用用户/密码错误,则无法连接到数据库。对我起作用的是从零开始构建mongo到用更新的lib提供nginx构建的组合:http://pastebin.com/tMsL2eC9。
但这还不够。我还必须特别检查nginx子模块中的mongo驱动程序v0.3.1。也就是说,nginx网格资源的v0.8。V0.3.1 mongo c驱动程序,而新的mongo构建是来自该链接中指定的env的引用。然后,我构建了nginx1.0.11,没有任何错误,而且成功了。
https://serverfault.com/questions/345516
复制相似问题