用Waf查找本地外部库

Chr*_*ert 1 c++ waf

我正在创建一个wscript文件,它能够链接存储在项目目录中的外部库,而不是安装到系统中,但我不确定这样做的最佳方法.

目前,我正在做的事情如下:

cfg.env.INCLUDES_A = [os.path.normpath('external/include')]
cfg.env.LIBPATH_A  = [os.path.normpath('external/win32/A/lib/x64')]
cfg.env.LIB_A      = ['A']
cfg.env.append_unique('COPY_LIBS', os.path.normpath('external/win32/A/lib/x64/A.dll'))
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我链接到A.lib的本地副本,然后将A.dll标记为稍后在代码中复制到我的安装目录(本地'dist'dir).但是,我知道对于安装在系统中的库,您可以执行以下操作:

cfg.check_cxx(uselib_store="GL", stlib="opengl32")
Run Code Online (Sandbox Code Playgroud)

我想,我的问题是:有没有办法用本地存储的外部库做类似的事情?可能是某种check_cxx(libpath="external/blah", ...)或类似的东西?

Mat*_*son 5

read_shlib并且read_stlib可以使用.

您可以像这样使用它:

bld.read_shlib('opengl32', paths='external/blah')
Run Code Online (Sandbox Code Playgroud)