我当前的目标是使这个repo CV-camera-finder与Python 3.10兼容。
一个用media foundation找到连接的摄像机列表的简单函数。这只是https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/multimedia/mediafoundation/MFCaptureToFile中的一个示例代码的修改,以便在python中使用。
下载pymf.pyd(32位-〉文件在文件夹32,64位-〉...)到你的PYTHONPATH中使用它。如果你想修改它,编辑cpp文件并重建它。
我对Python的了解最多是中级和C++初学者。我下载了Visual Studio 2022,并试图自己重建它,但没有成功。我使用了他的cap.cpp和pymf.cpp文件,以及引用的媒体基金会示例中的capture.h文件,因为我认为基于include,我不需要其他任何东西。h到位于3. 10 include文件夹中的一个,假设这将解决问题。
我遇到了很多问题。第一个是
unable to open 'python310.lib'
我添加了一个指向3.10 libs文件夹的额外库依赖项。完成后,下面是我现在得到的错误。
LNK2001 unresolved external symbol main
LNK1120 1 unresolved externals
我很清楚我对这件事感到困惑,但我真的很想让它在Python 3.10中工作。有人能提供一个步骤/建议/教程/等等来构建它并将其制作成一个.pyd吗?
2条答案
按热度按时间oxf4rvwz1#
请确保在Visual Studio中更改项目设置,并跟踪此链接writing python extension。特别是链接器下的
Additional Include Directories
和Additional Library Directories
。此外,请查看配置类型的target file extension
为pyd
和dll
。如果你有这个,沿着你有的MF github中的
capture.h
,它应该可以工作。另外,我在我的capture.h
中添加了以下几行,否则VS找不到一些库。在python3.8和windows10上测试过。
4uqofj5v2#
LNK2001无法解析的外部符号main
程序缺少入口函数。如果不想使用main,请指定项目的配置类型为lib或dll。