使用waf构建库很不错,我喜欢lib<targetname>
命名方案。但是当我使用boost :: python时,我想摆脱它:我希望librarie的名字就像目标名称。这只是一个简单的重命名,我知道,但是:我可以告诉waf不要在目标名称之前放置lib
(或者:指定一个保持不变的自己的名字)?
答案 0 :(得分: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")
现在,在构建目录中有一个名为myfoo.so
的共享库,可以直接import
编辑。