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