安装MongoDB后,在服务器端,我尝试使用C ++驱动程序代码从以下链接配置我的客户端,该客户端位于CentOS 5.6操作系统上:
http://dl.mongodb.org/dl/cxx-driver/
安装顺利!我在没有任何问题的情况下完成了教程,但是,此时,我需要使用我的组的构建过程来构建它。当我尝试编译时,收到以下错误:
/usr/local/include/mongo/base/error_codes.h:36: error: expected identifier before numeric constant
/usr/local/include/mongo/base/error_codes.h:36: error: expected '}' before numeric constant
....
此时,我对自己说必须有另一个与此代码冲突的#define。所以,我运行了g++ ... -E
命令,发现在/usr/include/X11/X.h
中有一个#define BadValue
。
这对我来说似乎很奇怪,因为如果代码被包含在error_codes.h
名称空间中包含mongo
的某个名称空间中,我就不会发生这种情况。所以,我搜索了我的整个文件系统,寻找像using namespace mongo
这样的东西,认为全局命名空间被污染了,但事实并非如此。我没有看到任何这种情况发生,我想知道 - 因为这两个都是第三方 - 如何解决。
思想?