我尝试在waf wscript文件中搜索库和标头.一般来说,这可能是:
def configure( conf ):
conf.load( "compiler_cxx" )
conf.check_cxx( lib = "thelib" )
conf.check_cxx( header_name "header.hpp" )
这在类Unix系统上运行良好,其中库和标题大多位于常见位置.但是,我想在check_cxx()命令中添加自定义搜索路径,尤其是为Windows系统上的用户提供查找库的机会,该库通常位于文件系统的某个位置.
我知道libpath参数,但它仍然需要以某种方式填充,我想知道是否没有我错过的更一般或甚至内置的解决方案.
我也很高兴听到有关此类事情的其他方法,解决方案或良好做法.
解决方法:
最佳做法是使用WAF的使用工具进行检查(§10.3 of the wafbook)并定义外部/系统库的路径(§10.3.3)
它看起来像:
def configure(conf):
conf.load('compiler_cxx')
conf.env.LIBPATH_MYLIB = ['/usr/local/lib']
conf.env.INCLUDES_MYLIB = ['/usr/local/include']
if sys.platform == 'win32':
conf.env.LIBPATH_MYLIB = ['/custom/windows/path/lib']
conf.env.INCLUDES_MYLIB = ['/custom/windows/path/include']
# use MYLIB in your check
conf.check_cxx(lib = 'somelib', use = 'MYLIB', cxxflags = '-O2')
def build(bld):
# Of course you can use the defined MYLIB in build ^^
bld.program(source = 'main.cpp', use = 'MYLIB')