在使用 Visual Studio 2017 和 boost 构建的 python 中加载自定义 dll 时出现依赖错误
Posted
技术标签:
【中文标题】在使用 Visual Studio 2017 和 boost 构建的 python 中加载自定义 dll 时出现依赖错误【英文标题】:Dependency errors when loading custom dll in python, built with Visual Studio 2017 and boost 【发布时间】:2017-07-12 04:00:37 【问题描述】:我正在尝试从 C++ 和 boost 源代码构建 BGSLibrary python 模块。该库在 linux 上编译没有问题。对于 Windows,我使用的是 Visual Studio 2017 和 Cmake 3.9。这是我的步骤。
Visual Studio 安装选项
从 Visual Studio 命令行终端下载 Boost,安装脚本
bootstrap.bat
b2 -j%cores% toolset=msvc-14.1 address-model=32 architecture=x86 link=static threading=multi runtime-link=static --build-type=complete stage --with-python
-
将 boost_python-vc141-mt-s-1_64.lib 重命名为 python_boost.lib 以满足 cmake 要求。
CMake 配置选项
Visual Studio 外部包含目录
Visual Studio 外部库目录
将原名为 boost_python-vc141-mt-s-1_64.lib 的副本移动到 bgs 构建文件夹。
执行 Visual Studio 构建。它成功创建了 libbgs python dll
根据 question 我将 libbgs.dll 重命名为 .pyd 并在文件夹中包含 boost lib。我将 bgslibrary/build 添加到路径。不幸的是还没有。
一些依赖问题。快速浏览一下 DependencyWalker 是非常令人生畏的,大量的问题。
在我去尝试将所有这些 .dll 手动添加到 bgslibrary/build 文件夹之前,我是否已经完成了更高级别的错误。我是否应该在 Visual Studio 的一般属性中选择“静态库”,这会有所不同吗?
【问题讨论】:
【参考方案1】:解决了。 Dependency walker 已经足够老了,它只是显示了很多错误。真的只是4个opencv dll。将 opencv/build/release/bin 添加到我的路径就可以了。
【讨论】:
以上是关于在使用 Visual Studio 2017 和 boost 构建的 python 中加载自定义 dll 时出现依赖错误的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2017工程在Visual Studio 2019打开碰到的问题