在使用 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打开碰到的问题

Visual Studio 2017工程在Visual Studio 2019打开碰到的问题

visual studio 2017 如何下载和安装

visual studio2017需要安装哪些组件

Visual Studio 2017的安装与使用

visual studio 2017