在我的项目中(使用基于waf / wscript的构建系统),我现在正在添加mongodb c ++驱动程序API。我发现' libmongoclient.a'没有被添加为链接器选项(在编译时),我获得了对mongodb c ++驱动程序API调用的所有未定义引用。
我想了解,如何修改我的wscript,以便它自己选择与mongoclient相关的库并正确链接它。它可能涉及更新wscript的配置功能。我是waf构建系统的新手,不知道如何改变它。
I have built and installed the mongodb c++ driver as follows:
- INCLUDE: /usr/local/include/mongo/
- LIB: /usr/local/lib/libmongoclient.a
我在这方面早些时候发过一个类似的问题,而上面一个是更具体的问题陈述。
https://stackoverflow.com/questions/30020574/building-project-with-waf-script-and-eclipse
由于我只是在eclipse中调用./waf,我相信,我在Eclipse的构建环境中指定的选项并没有被waf拾取(因此mongoclient的库选项)。
答案 0 :(得分:0)
我想出来了,步骤如下:
在configure命令/功能中添加了以下检查。
conf.check_cfg(package ='libmongoclient',args = [' - cflags',' - libs'], uselib_store ='MONGOCLIENT',强制=真)
完成此步骤后,我们需要将包配置文件(.pc)添加到/ usr / local / lib / pkgconfig路径中。这是我们指定lib和headers的路径的文件。粘贴此文件的内容如下。
前缀=的/ usr /本地 LIBDIR =的/ usr /本地/ lib中 了includedir =的/ usr /本地/包含/蒙戈
名称:libmongoclient 描述:Mongodb C ++驱动程序 版本:0.2 Libs:-L $ {libdir} -lmongoclient Cflags:-I $ {includedir}
将上述库添加到sepcific程序的构建函数中,该程序依赖于上述依赖项(即MongoClient)。
mobility = bld( 目标=“仓/迁移率”, features ='cxx cxxprogram', 源= '的src / main.cpp中', use ='mob-objects MONGOCLIENT', )