MNN icon indicating copy to clipboard operation
MNN copied to clipboard

编译的引擎如何用Python API调用

Open DrRyanHuang opened this issue 3 years ago • 4 comments

Hi, 非常感谢MNN的工作,很cool!!!!!!!!!!

我在windows平台编译了推理引擎,mnn版本是当前最新版,按照文档 https://www.yuque.com/mnn/cn/build_windows

cd /path/to/MNN
powershell # 运行该命令从cmd环境进入powershell环境,后者功能更强大

./schema/generate.ps1

# CPU+OpenCL+Vulkan, 64位编译
.\package_scripts\win\build_lib.ps1 -path MNN-CPU-OPENCL/lib/x64 -backends "opencl,vulkan"

编译结果很流畅,只有几个warning:

[65/316] Building CXX object CMakeFiles\MNNTransform.dir\source\geometry\GeometryTopK.cpp.obj
xxx\MNN\source\geometry\GeometryTopK.cpp(19): warning C4477: “printf”: 格式字符串“%lu”需要类型“unsigned long”的参数,但可变参数 1 拥有了类型“unsigned __int64”
xxx\MNN\source\geometry\GeometryTopK.cpp(19): note: 请考虑在格式字符串中使用“%zu”
xxx\MNN\source\geometry\GeometryTopK.cpp(19): warning C4477: “printf”: 格式字符串“%lu”需要类型“unsigned long”的参数,但可变参数 2 拥有了类型“unsigned __int64”
xxx\MNN\source\geometry\GeometryTopK.cpp(19): note: 请考虑在格式字符串中使用“%zu”
[300/316] Building CXX object tools\train\CMakeFiles\MNNTrain.dir\source\transformer\Transformer.cpp.obj
xxx\MNN\tools\train\source\transformer\Transformer.cpp(80) : warning C4700: 使用了未初始化的局部变量“c”

我没有在build目录找到 mnn.exe,接下来,我想用Python API调用刚刚编译的支持opencl,vulkan 的引擎,请问该怎么操作呢?

直接pip安装mnn,调用的好像是已经编译完毕的下载的引擎? 而不是我编译的

DrRyanHuang avatar Jul 31 '22 17:07 DrRyanHuang

需要在 windows 上编译 pymnn ,具体步骤等语雀文档更新吧

jxt1234 avatar Aug 04 '22 09:08 jxt1234

@jxt1234 谢谢,请问是这个吗: https://github.com/lyyiangang/pymnn

DrRyanHuang avatar Aug 04 '22 09:08 DrRyanHuang

  1. 从源码编译可以查看pymnn/INSTALL.md步骤;
  2. 也可以直接使用pip install MNN安装;

wangzhaode avatar Aug 23 '22 11:08 wangzhaode

平台(如果交叉编译请再附上交叉编译目标平台):

Platform(Include target platform as well if cross-compiling):

Github版本:

Github Version:

直接下载ZIP包请提供下载日期以及压缩包注释里的git版本(可通过7z l zip包路径命令并在输出信息中搜索Comment 获得,形如Comment = bc80b11110cd440aacdabbf59658d630527a7f2b)。 git clone请提供 git commit 第一行的commit id

Provide date (or better yet, git revision from the comment section of the zip. Obtainable using 7z l PATH/TO/ZIP and search for Comment in the output) if downloading source as zip,otherwise provide the first commit id from the output of git commit

编译方式:

Compiling Method

请在这里粘贴cmake参数或使用的cmake脚本路径以及完整输出
Paste cmake arguments or path of the build script used here as well as the full log of the cmake proess here or pastebin

MNN\pymnn\pip_package python setup.py build --version 1.0

编译日志:

Build Log:

USE_TRT False Building with python wheel with package name MNN ['D:\Users\XXXX\Documents\GitHub\MNN\pymnn_build', 'D:\Users\XXXX\Documents\GitHub\MNN\pymnn_build\tools\train', 'D:\Users\XXXX\Documents\GitHub\MNN\pymnn_build\tools\cv', 'D:\Users\XXXX\Documents\GitHub\MNN\pymnn_build\source\backend\tensorrt'] running build running build_py running build_ext building '_mnncengine' extension D:\SoftWare\vs2019\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -ID:\Users\XXXX\Documents\GitHub\MNN\include -ID:\Users\XXXX\Documents\GitHub\MNN\express -ID:\Users\XXXX\Documents\GitHub\MNN\express\module -ID:\Users\XXXX\Documents\GitHub\MNN\source -ID:\Users\XXXX\Documents\GitHub\MNN\tools -ID:\Users\XXXX\Documents\GitHub\MNN\tools\train\source\nn -ID:\Users\XXXX\Documents\GitHub\MNN\tools\train\source\grad -ID:\Users\XXXX\Documents\GitHub\MNN\tools\train\source\module -ID:\Users\XXXX\Documents\GitHub\MNN\tools\train\source\parameters -ID:\Users\XXXX\Documents\GitHub\MNN\tools\train\source\optimizer -ID:\Users\XXXX\Documents\GitHub\MNN\tools\train\source\data -ID:\Users\XXXX\Documents\GitHub\MNN\tools\train\source\transformer -ID:\Users\XXXX\Documents\GitHub\MNN\source\core -ID:\Users\XXXX\Documents\GitHub\MNN\schema\current -ID:\Users\XXXX\Documents\GitHub\MNN\3rd_party\flatbuffers\include -ID:\Users\XXXX\Documents\GitHub\MNN\tools\cv\include -ID:\SoftWare\python3.8\lib\site-packages\numpy\core\include -ID:\SoftWare\python3.8\include -ID:\SoftWare\python3.8\include -ID:\SoftWare\vs2019\VC\Tools\MSVC\14.29.30133\ATLMFC\include -ID:\SoftWare\vs2019\VC\Tools\MSVC\14.29.30133\include "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" -ID:\SoftWare\vs2019\VC\Tools\MSVC\14.29.30133\ATLMFC\include -ID:\SoftWare\vs2019\VC\Tools\MSVC\14.29.30133\include "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /EHsc /TpD:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc /Fobuild\temp.win-amd64-3.8\Release\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.obj -DBUILD_OPTYPE -DPYMNN_TRAIN_API /MT /Zi /EHa /DNOMINMAX /wd4267 /wd4251 /wd4522 /wd4522 /wd4838 /wd4305 /wd4244 /wd4190 /wd4101 /wd4996 /wd4275 /experimental:preprocessor -DPYMNN_EXPR_API -DPYMNN_NUMPY_USABLE -DPYMNN_OPENCV_API /DEBUG cl: 命令行 warning D9025 :正在重写“/MD”(用“/MT”) cl: 命令行 warning D9025 :正在重写“/EHs”(用“/EHa”) cl: 命令行 warning D9035 :“experimental:preprocessor”选项已否决,并将在将来的版本中移除 cl: 命令行 warning D9036 :使用“Zc:preprocessor”而不使用“experimental:preprocessor” MNN.cc D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 D:\SoftWare\python3.8\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winbase.h(9531): warning C5105: 生成“已定义”的宏扩展具有未定义的行为 D:\Users\XXXX\Documents\GitHub\MNN\tools\cpp/IDSTEncoder.hpp(39): warning C4018: “<”: 有符号/无符号不匹配 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\nn.h(406): warning C4477: “printf”: 格式字符串“%d”需要类型“int”的参数,但可变参数 1 拥有了类型“unsigned __int64” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\nn.h(406): note: 请考虑在格式字符串中使用“%zd” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1324): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1418): error C2059: 语法错误:“delete” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1419): error C2143: 语法错误: 缺少“)”(在“”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1419): error C2143: 语法错误: 缺少“;”(在“”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1419): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1419): error C2377: “PyObject”: 重定义;typedef 不能由任何其他符号重载 D:\SoftWare\python3.8\include\object.h(108): note: 参见“PyObject”的声明 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1419): error C2059: 语法错误:“)” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1419): error C3551: 如果使用尾随返回类型,则主要返回类型应该是单个类型说明符“自动”(而不是 "重载函数类型") D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1419): error C3613: “->”后缺少返回类型(假定为“int”) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1419): error C2146: 语法错误: 缺少“;”(在标识符“ob_type”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1420): error C2059: 语法错误:“}” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1420): error C2143: 语法错误: 缺少“;”(在“}”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1423): error C2143: 语法错误: 缺少“;”(在“{”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1423): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1430): error C2059: 语法错误:“)” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1434): error C2143: 语法错误: 缺少“;”(在“”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1434): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1434): error C2370: “PyObject”: 重定义;不同的存储类 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1419): note: 参见“PyObject”的声明 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1434): error C2061: 语法错误: 标识符“PyObject” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1434): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1434): error C2059: 语法错误:“{” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1434): error C2143: 语法错误: 缺少“;”(在“{”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1434): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1444): error C2143: 语法错误: 缺少“;”(在“”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1444): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1444): error C2370: “PyObject”: 重定义;不同的存储类 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1419): note: 参见“PyObject”的声明 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1444): error C2061: 语法错误: 标识符“PyObject” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1444): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1444): error C2059: 语法错误:“{” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1444): error C2143: 语法错误: 缺少“;”(在“{”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1444): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1456): error C2065: “t”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1456): error C2143: 语法错误: 缺少“;”(在“{”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1456): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1459): error C2065: “t”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1459): error C2143: 语法错误: 缺少“;”(在“{”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1459): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1462): error C2143: 语法错误: 缺少“;”(在“*”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1462): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1462): error C2370: “PyObject”: 重定义;不同的存储类 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1419): note: 参见“PyObject”的声明 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1462): error C2061: 语法错误: 标识符“PyObject” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1462): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1462): error C2059: 语法错误:“{” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1462): error C2143: 语法错误: 缺少“;”(在“{”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1462): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1474): error C2059: 语法错误:“)” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1477): error C2061: 语法错误: 标识符“PyObject” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1478): error C2065: “args”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1479): error C2065: “shape”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1479): error C2065: “dataType”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1479): error C2244: “std::data”: 无法将函数定义与现有的声明匹配 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1479): error C2065: “input_tensor”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1479): error C2065: “input_var”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1488): error C2065: “args”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1488): error C2065: “input_var”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1489): error C2065: “input_var”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1492): error C2065: “args”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1492): error C2065: “input_tensor”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1493): error C2065: “input_tensor”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1493): error C2065: “input_tensor”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1494): error C2065: “input_tensor”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1495): error C2065: “input_var”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1495): error C2065: “input_tensor”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1496): error C2065: “input_tensor”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1506): error C2065: “args”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1506): error C2065: “shape”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1506): error C2065: “dataType”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1507): error C2065: “shape”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1510): error C2065: “args”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1510): error C2065: “shape”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1510): error C2065: “dataType”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1511): error C2065: “shape”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1511): error C2664: “bool isVals(PyObject *)”: 无法将参数 1 从“overloaded-function”转换为“PyObject *” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1511): note: 上下文不允许消除重载函数的歧义 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\util.h(374): note: 参见“isVals”的声明 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1526): error C2065: “input_var”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1527): error C2065: “input_var”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1528): error C3536: “var”: 初始化之前无法使用 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1529): error C2062: 意外的类型“void” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1529): error C2144: 语法错误:“void”的前面应有“(” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1532): error C3536: “info”: 初始化之前无法使用 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1548): error C2065: “input_tensor”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1549): error C2065: “input_tensor”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1549): error C2664: “MNN::Tensor::Tensor(int,MNN::Tensor::DimensionType)”: 无法将参数 2 从“bool”转换为“MNN::Tensor::DimensionType” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1549): note: 强制转换为枚举类型要求显式强制转换(static_cast、C 样式强制转换或函数样式强制转换) D:\Users\XXXX\Documents\GitHub\MNN\include\MNN/Tensor.hpp(60): note: 参见“MNN::Tensor::Tensor”的声明 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1559): error C2065: “shape”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1560): error C2065: “shape”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1567): warning C4551: 缺少参数列表的函数调用 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1567): error C2451: 类型为“overloaded-function”的条件表达式无效 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1567): note: 上下文不允许消除重载函数的歧义 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1568): error C2059: 语法错误:“)” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1568): error C2143: 语法错误: 缺少“;”(在“{”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1569): error C2664: “Py_ssize_t PyTuple_Size(PyObject *)”: 无法将参数 1 从“overloaded-function”转换为“PyObject *” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1569): note: 上下文不允许消除重载函数的歧义 D:\SoftWare\python3.8\include\tupleobject.h(31): note: 参见“PyTuple_Size”的声明 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1575): error C2181: 没有匹配 if 的非法 else D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1575): error C2059: 语法错误:“)” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1575): error C2143: 语法错误: 缺少“;”(在“{”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1580): error C2181: 没有匹配 if 的非法 else D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1581): error C2059: 语法错误:“)” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1581): error C2143: 语法错误: 缺少“;”(在“{”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1582): error C2059: 语法错误:“)” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1582): error C2143: 语法错误: 缺少“;”(在“{”的前面) D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1587): error C2181: 没有匹配 if 的非法 else D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1596): error C2065: “dataType”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1599): error C2065: “dataType”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1602): error C2065: “dataType”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1605): error C2065: “dataType”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1608): error C2065: “dataType”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1611): error C2065: “dataType”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1626): error C2065: “dataType”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1628): error C2664: “PyObject *PyTuple_GetItem(PyObject *,Py_ssize_t)”: 无法将参数 1 从“overloaded-function”转换为“PyObject *” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1628): note: 上下文不允许消除重载函数的歧义 D:\SoftWare\python3.8\include\tupleobject.h(32): note: 参见“PyTuple_GetItem”的声明 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1630): error C2065: “dataType”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1632): error C2664: “PyObject *PyTuple_GetItem(PyObject *,Py_ssize_t)”: 无法将参数 1 从“overloaded-function”转换为“PyObject *” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1632): note: 上下文不允许消除重载函数的歧义 D:\SoftWare\python3.8\include\tupleobject.h(32): note: 参见“PyTuple_GetItem”的声明 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1634): error C2065: “dataType”: 未声明的标识符 D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1636): error C2664: “PyObject *PyTuple_GetItem(PyObject *,Py_ssize_t)”: 无法将参数 1 从“overloaded-function”转换为“PyObject *” D:\Users\XXXX\Documents\GitHub\MNN\pymnn\src\MNN.cc(1636): fatal error C1003: 错误计数超过 100;正在停止编译 error: command 'D:\SoftWare\vs2019\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe' failed with exit status 2

粘贴在这里
Paste log here or pastebin

编译失败了

houshijie-2020 avatar Aug 25 '22 02:08 houshijie-2020

@houshijie-2020 我遇到了和你相同的问题。解决办法是:删除MNN.cc里的所有中文注释。(我成功编译的版本是MNN==2.2.0)

hyukhea avatar Nov 07 '22 05:11 hyukhea

可以参考GithubAction的步骤编译:https://github.com/alibaba/MNN/blob/master/.github/workflows/pymnn_windows.yml

wangzhaode avatar Feb 15 '23 12:02 wangzhaode