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

Dependency errors when loading custom dll in python, built with Visual Studio 2017 and boost

我正在尝试从 C++ 和 boost 源构建 BGSLibrary python 模块。该库在 linux 上编译没有问题。对于 windows,我使用的是 Visual Studio 2017 和 Cmake 3.9。这是我的步骤。

  1. Visual Studio 安装选项

  2. 下载 Boost,从 Visual Studio 命令行终端中安装脚本

    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

    1. 将boost_python-vc141-mt-s-1_64.lib重命名为python_boost.lib以满足cmake要求。
  3. CMake 配置选项

  4. Visual Studio 外部包含目录

  5. Visual Studio 外部库目录

  6. 将原来命名为boost_python-vc141-mt-s-1_64.lib的副本移动到bgs构建文件夹。

  7. 执行Visual Studio构建。它成功创建了 libbgs python dll

  8. 根据这个 我将 libbgs.dll 重命名为 .pyd 并在文件夹中包含 boost 库。我在路径中添加了 bgslibrary/build。不幸的是还没有完全实现。

一些依赖性问题。 DependencyWalker 一看就很吓人,问题数量巨大

在我尝试将所有这些 .dll 手动手动添加到 bgslibrary/build 文件夹之前,我是否遇到了更高级别的错误。我是否应该在 visual studio 的一般属性中选择 "static library",这会有什么不同吗?

已解决。 Dependency walker 已经足够老了,它只是显示了很多错误。真的只是 4 个 opencv dll。添加 opencv/build/release/bin 到我的路径就成功了。