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

How to add depdency in waf builder's wscript script

在我的项目(使用基于 waf/wscript 的构建系统)中,我现在添加 mongodb c++ 驱动程序 APIs。我发现 '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

这方面我之前发过类似的问题,上面是比较具体的问题陈述。

由于我只是从 eclipse 中调用 ./waf,我相信,我在 Eclipse 的构建环境中指定的选项不会被 waf 获取(因此 mongoclient 的库选项)。

我想出来了,步骤如下:

  1. 在配置中添加了以下检查 command/function。

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

  2. 完成这一步后,我们需要在/usr/local/lib/pkgconfig路径中添加一个包配置文件(.pc)。这是我们指定 lib 和 headers 路径的文件。在下面粘贴此文件的内容。

    前缀=/usr/local libdir=/usr/local/lib includedir=/usr/local/include/mongo

    名称:库mongo客户端 说明:Mongodb C++ driver 版本:0.2 库:-L${libdir} -lmongoclient Cflags: -I${includedir}

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

    流动性 = bld( 目标='bin/mobility', 特征='cxx cxxprogram', 来源='src/main.cpp', 使用='mob-objects MONGOCLIENT', )