我正在使用pybind11
与visual studio 17。
提出一个想法:使用一个简单的visual studio c++
dll项目B
你可以编译pyd(实际上是dll的python模块,你只需重命名python的扩展名):你只需要链接到python的libs写c ++包装代码etvoilà。然后创建一个python visual studio项目P
,将B
放在P
的引用中,将pyd路径添加到项目P
的搜索路径中,然后就可以“运行“其中导入pyd模块的任何python文件都有效。
现在我必须处理项目B
链接到另一个c++
dll的不同情况
1)我有另一个可视工作室c++
dll项目c++
编译的“核心”C
dll,项目B
链接到C
,我还在项目C
的搜索路径中添加P
项目作为项目C
和P
dll路径的参考,并且它可以正常工作。
2)项目B
链接到提供给我的dll C
为intel,我将dll C
的路径添加到项目P
的搜索路径中,但是当我在项目P
中运行python文件时,python会在P
pyd模块的导入行中断,并出现非常“精确”的错误:ImportError: DLL load failed: The specified module could not be found
。
备注。我应该准确地说,在一个简单的c++
控制台项目中,当我链接到C
时,我在使用ctrl + F5运行.exe文件时没有这样的问题(也就是说,从visual studio运行它) ,意思是:C
dll没问题。 (当然。)但是,如果我双击生成的exe
文件,我有一个The code execution cannot proceed because mkl_sequential.dll was not found. Reinstalling the program may fix this problem
,并且将所有mkl lib文件放在exe旁边都无济于事。