提升 Python 找不到 dll 文件
Boost Python not finding dll file
在尝试在Visual Studio上安装Boost Python时,我得到的结果很少。我能够创建Boost.Python库和boost_python...还创建了lib文件,这花了我很长时间才弄清楚如何实现这一目标。
但是,现在在Visual Studio中,将包含和库路径添加到链接器后,我无法使小型测试程序正常工作。
尝试运行以下代码行时:
Py_Initialize();
using namespace boost::python;
object main_module((handle<>(borrowed(PyImport_AddModule("__main__")))));
我收到以下错误
程序无法启动,因为缺少boost_python-vc141-1_65.dll。
当我在库所在的 boost 文件夹中查看时(在舞台文件夹中(,我可以清楚地看到这个文件,并且我已经将程序链接到这个文件夹。
我已经尝试了各种不同的Boost版本。
最新的稳定版本因此 1.64 与 beta 1.65 具有相同的问题。对于以前的版本1.61,我甚至无法构建Boost.Python。
我还尝试了不同的 Python 版本,3.6 和现在的 2.7。我已经卸载了所有其他版本的 Python,因此 2.7 版本是唯一的版本。我还确保在系统变量中设置了 PYTHONHOME 和 PYTHONPATH。 ? 我是否错过了一些重要的东西来让这个 Boost Python 库工作?如果需要任何其他信息,请询问,我会添加它,但由于我不熟悉 boost 和链接,我不确定哪些信息是相关的。
在Windows上没有/usr/shared目录,所以boost构建脚本不能为每个人安装dll库。所以你应该自己做这项工作。
您的 dll 文件必须与 exe 文件位于同一目录中。编译 boost 时,它会在 boost 输出 dir 中创建 dll 库(搜索此文件(。因此,您必须通过自定义构建步骤或其他方式将此 *.dll 文件复制到输出目录C++(编译器/链接器在其中创建 *.exe(。
如果启用了安全搜索模式,则搜索顺序如下:
- 从中加载应用程序的目录。
- 系统目录。使用 GetSystemDirectory 函数获取此目录的路径。
- 16 位系统目录。没有函数可以获取此目录的路径,但会对其进行搜索。
- 窗口目录。使用 GetWindowsDirectory 函数获取此目录的路径。
- 当前目录。
- PATH 环境变量中列出的目录。请注意,这不包括每个应用程序的路径 由"应用路径"注册表项指定。"应用路径"键不是 在计算 DLL 搜索路径时使用。
如果禁用了 SafeDllSearchMode,则搜索顺序如下:
- 从中加载应用程序的目录。
- 当前目录。
- 系统目录。使用 GetSystemDirectory 函数获取此目录的路径。
- 16 位系统目录。没有函数可以获取此目录的路径,但会对其进行搜索。
- 窗口目录。使用 GetWindowsDirectory 函数获取此目录的路径。
- PATH 环境变量中列出的目录。请注意,这不包括由
- 应用程序路径注册表项。应用路径键在以下情况下不使用 计算 DLL 搜索路径。
取自这里
- 挂起和取消挂起一个文件DLL
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 加载与引用 .NET DLL 位于同一文件夹中的引用的 .NET DLL 时"Not found"异常
- 将 dll 文件注入 UWP
- 加载"D:UsersPublicDocumentsopencvbuildx64vc14binopencv_world340d.dll",找不到或打开PDB文件
- CMake 生成的 MSVC 项目找不到符号,即使为其相关 dll 正确生成了 lib 文件也是如此
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 在使用 Clang 编译 DLL 时指定 DEF 文件
- 从 .lib 文件创建一个.dll文件
- 可执行文件C++包括.obj,.lib和.dll吗?
- python37.dll在可执行文件中未链接
- 链接器找不到导入的 DLL 的 LIB 文件
- DLL:当 SDK 头文件不使用 __declspec(dllexport) 时,我可以使用它吗
- sf::Windows上的音乐:api-ms-win-crt-locale-l1-1-0.dll:无法打开共享对象文件
- 如何在 CMake 超级生成中查找 dll/so 文件
- 在任何平台上执行任何Qt5应用程序的重要dll文件是什么(运行时文件dll)
- 在C++的应用程序中包括文件(dll,txt等.exe
- 反编译文件.dll
- 另一台电脑上的C++程序所需的文件/DLL