4

用 waf 构建库很好,我喜欢lib<targetname>命名方案。但是当我将 is 与 boost::python 一起使用时,我想摆脱它:我希望库的名称与目标名称一样。我知道这只是一个简单的重命名,但是:我可以告诉 waflib在目标名称之前省略放置吗(或者:指定一个保持不变的自己的名称)?

4

1 回答 1

3

好的,我知道了。可以使用该python工具启用此功能,可在此处找到:http: //docs.waf.googlecode.com/git/apidocs_16/tools/python.html#module-waflib.Tools.python

要点是调用conf.init_pyext()并在共享库的构建指令中指定features='pyext'

def options(opt):
        opt.load('python')

def configure(conf):
    conf.load('python')
    conf.check_python_version((2,4,2))
    conf.check_python_headers()

def build(bld):

    bld.shlib(
        features = 'pyext',
        source = "mymodule.cpp",
        target = "myfoo",
        use = "PYTHON BOOST_PYTHON")

现在,在 build 目录中有一个名为的共享库myfoo.so,可以直接import编辑。

于 2012-01-24T08:05:58.643 回答