作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 python 中使用 cppyy 来导入 C++ 文件。我想加载 HSMdApi.h 和 HSMdApi.lib。这是目录结构
这是代码
import cppyy
cppyy.include('include/HSMdApi.h')
cppyy.load_library('win64/HSMdApi.lib')
Error in <TWinNTSystem::DynamicPathName>: win64/HSMdApi.lib does not exist in [a list of environment PATH] or has wrong file extension (.dll)
cppyy.load_library('win64/HSMdApi')
>> cling::DynamicLibraryManager::loadLibrary(): LoadLibrary: returned 126: The specified module could not be found.
Command "bdist_wheel" is disabled
WARNING: Legacy build of wheel for 'cppyy' created no files.
Command output:
Command "bdist_wheel" is disabled
最佳答案
要加载的库是(动态).dll,而不是(静态).lib 库。您无需指定扩展名,因为如果未提供,则会添加该扩展名。 python 可执行文件是否也使用了 64 位(交互式启动 python 时在欢迎消息中打印构建)? bdist_wheel 警告可以忽略(轮子被禁用 b/c pip 不尊重需求依赖顺序,但正常构建会这样做,因此如果为安装而不是轮子而构建则很好)。load_library
旨在成为 ctypes.CDLL
的更便携版本您也可以尝试,因为这可能会提供更好的错误消息。对于 CDLL
,您确实需要指定完整路径。例子:
import ctypes, os
l = ctypes.CDLL(os.path.join('win64', 'HSMdApi.dll'))
HSMdApi.dll
,但这不应该涉及紧贴或模块。在运行脚本的目录中是否有字典残留?或
.rootmap
可通过
PATH
访问的文件envar 指向已被删除的库?
关于c++ - 如何在cppyy中加载库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62172222/
我是一名优秀的程序员,十分优秀!