使用添加了 extras/boost.py 的 waf 1.7.9,我发现您必须在配置时获取库,这使得使用不同的库集构建目标变得困难。例如,我有两个程序,一个只需要 boost 中的头文件(程序'a'),另一个使用一些库(程序'b')。这是我的解决方案,但我的问题是:有没有更好/首选的方法来做到这一点?
#! /usr/bin/env python
# encoding: utf-8
def options(opt):
opt.load('compiler_cxx boost')
def configure(conf):
conf.load('compiler_cxx boost')
conf.check_boost()
conf.env.DEFINES_BOOST = ['NDEBUG']
conf.env.LIB_BOOST_FILESYSTEM = conf.boost_get_libs('filesystem system')[-1]
conf.env.LIB_BOOST_PROGRAM_OPTIONS = conf.boost_get_libs('program_options')[-1]
def build(bld):
# program 'a' requires header-only part of boost
bld.program(
target = 'a',
source = 'a.cpp',
use = ['BOOST'] )
# program 'b' requires link to some boost libraries
bld.program(
target = 'b',
source = 'b.cpp',
use = ['BOOST', 'BOOST_FILESYSTEM', 'BOOST_PROGRAM_OPTIONS'] )