我正在尝试构建 BGSLibrary来自 C++ 的 python 模块和 boost 源代码。该库在 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 构建文件夹。
根据这个question我将 libbgs.dll 重命名为 .pyd 并在文件夹中包含 boost 库。我将 bgslibrary/build 添加到路径中。不幸的是,还没有完全实现。
一些依赖性问题。快速查看 DependencyWalker 非常吓人,问题数量巨大。
在我尝试将所有这些 .dll 手动手动添加到 bgslibrary/build 文件夹之前,我是否遇到了更高级别的错误。我是否应该在 visual studio 的一般属性中选择“静态库”,这会有什么不同吗?
最佳答案
已解决。 Dependency walker 已经足够老了,它只是显示了很多错误。真的只是 4 个 opencv dll。将 opencv/build/release/bin 添加到我的路径中即可。
关于python - 在 python 中加载自定义 dll 时出现依赖性错误,使用 Visual Studio 2017 和 boost 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45048188/