如何在waf builder的wscript脚本中添加depdency

时间:2015-05-04 02:32:53

标签: c++ waf

在我的项目中(使用基于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的库选项)。

1 个答案:

答案 0 :(得分:0)

我想出来了,步骤如下:

  1. 在configure命令/功能中添加了以下检查。

    conf.check_cfg(package ='libmongoclient',args = [' - cflags',' - libs'],                uselib_store ='MONGOCLIENT',强制=真)

  2. 完成此步骤后,我们需要将包配置文件(.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}

  3. 将上述库添加到sepcific程序的构建函数中,该程序依赖于上述依赖项(即MongoClient)。

    mobility = bld(     目标=“仓/迁移率”,     features ='cxx cxxprogram',     源= '的src / main.cpp中',     use ='mob-objects MONGOCLIENT',     )