介子添加现有的dll作为依赖

Posted

技术标签:

【中文标题】介子添加现有的dll作为依赖【英文标题】:meson add existing dll as dependency 【发布时间】:2020-08-01 13:39:39 【问题描述】:

我想在我自己的 Windows 项目中添加一个 dll 作为依赖项。 我尝试了以下操作:

lept_include = include_directories('../libs/tesseract')
lept_lib = '/g/programming/meson/libs/tesseract/liblept-5.dll'
lept_dep = declare_dependency(link_with:lept_lib, include_directories:lept_include)

executable('test1', 'main.cpp', dependencies: [boost_dep, lept_dep])

但出现此错误:

..\meson.build:25:0: ERROR: '/g/programming/meson/libs/tesseract/liblept-5.dll' is not a target.

我也试过了,但也没用:

cc = meson.get_compiler('cpp')
lib_l1 = cc.find_library('liblept-5.dll',  dirs : ['/g/programming/meson/libs/tesseract'])
lib_l2 = cc.find_library('liblept-5',  dirs : ['/g/programming/meson/libs/tesseract'])
lib_l3 = cc.find_library('lept-5.dll',  dirs : ['/g/programming/meson/libs/tesseract'])
lib_l4 = cc.find_library('lept-5',  dirs : ['/g/programming/meson/libs/tesseract'])

我怎样才能做到这一点? 谢谢

【问题讨论】:

我认为你需要声明一个 custom_target() 或一个 shared_library() 包含该包含。看看这两个项目:github.com/jmgao/dhc/blob/… 和 github.com/SveSop/nvapi_standalone/blob/… shared_library 正在构建一个不是用例的库。 custom_target 没有成功,至少不是我使用它的方式......令人惊讶的是lib_l4 = cc.find_library('lept-5', dirs : ['/cygdrive/g/programming/meson/libs/tesseract']) 现在正在工作。一开始我用的是windows的MSYS,现在我尝试了CYGWIN,找到了lib。 【参考方案1】:

令人惊讶的是lib_l4 = cc.find_library('lept-5', dirs : ['/cygdrive/g/programming/meson/libs/tesseract']) 现在正在工作。一开始我用的是windows的MSYS,现在我尝试了CYGWIN,找到了lib。

【讨论】:

以上是关于介子添加现有的dll作为依赖的主要内容,如果未能解决你的问题,请参考以下文章

无法链接到现有的 libopenblas.so.0 DLL

是否可以选择让介子安装缺少的依赖项? (对于我的 GNOME 日历构建。)

C++ dll 与其他 dll 作为依赖项 (SDL2)

在使用 Visual Studio 2017 和 boost 构建的 python 中加载自定义 dll 时出现依赖错误

如何解决 erlang rebar 的依赖问题?

使用meson build我可以定义项目内的依赖项吗?