如何在python中构建C++程序



我正在使用Anaconda。我想从github构建一个源代码:https://github.com/mmolero/pypoisson

当我在终端中使用以下命令时,它会给出以下错误:命令:python setup.py build

错误:

运行build运行build_ext跳过'src\pyppoisson.cpp'Cython扩展名(最新)建筑"pypoisson"扩展名C:\Program Files(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe/c/nologo/Ox/W3/GL/DNDEBUG/MD"-IC:\Users\IbrahimKhalilullah.conda\envs\PypoisonOpen3d\lib\site-packages\numpy\core\include"-IC:\Users\Ibrahim Khalilullah.conda\envs\PypoisonOpen3d\include"-IC:\Users\Ibrahim Khalilullah.conda\envs\PypoisonOpen3d\include"-IC:\Program Files(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include"-IC:\Program Files(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\include"-IC:\Program文件(x86)\Windows Kits\NETFXSDK\4.6.1\include\um"-IC:\ProgramFiles(x86)\Windows Kits\10\include\10.0.17763.0\ucrt"-IC:\Program文件(x86)\Windows Kits\10\include\10.0.17763.0\shared"-IC:\Program文件(x86)\Windows工具包\10\include\10.0.17763.0\um"-IC:\Program文件(x86)\Windows Kits\10\include\10.0.17763.0\winrt"-IC:\Program文件(x86)\Windows工具包\10\include\10.0.17763.0\cppwinrt"/EHsc/Tpsrc\pypoison.cpp/Fobuild\temp.win-ad64-3.6\Release \src\pypoison.obj-w-fopenmp cl:命令行警告D9025:用"/w"cl:Command覆盖"/W3"行警告D9002:忽略未知选项"-fopenmp"pypoison.cppc: \users\ibrahimkhalilullah.conda\envs\pypoisonopen3d\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprested_api.h(14):警告消息:使用不推荐使用的NumPy API,使用#define禁用它NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION C:\程序文件(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe/c/nologo/Ox/W3/GL/DNDEBUG/MD"-IC:\Users\IbrahimKhalilullah.conda\envs\PypoisonOpen3d\lib\site-packages\numpy\core\include"-IC:\Users\Ibrahim Khalilullah.conda\envs\PypoisonOpen3d\include"-IC:\Users\Ibrahim Khalilullah.conda\envs\PypoisonOpen3d\include"-IC:\Program Files(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include"-IC:\Program Files(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\include"-IC:\Program文件(x86)\Windows Kits\NETFXSDK\4.6.1\include\um"-IC:\ProgramFiles(x86)\Windows Kits\10\include\10.0.17763.0\ucrt"-IC:\Program文件(x86)\Windows Kits\10\include\10.0.17763.0\shared"-IC:\Program文件(x86)\Windows工具包\10\include\10.0.17763.0\um"-IC:\Program文件(x86)\Windows Kits\10\include\10.0.17763.0\winrt"-IC:\Program文件(x86)\Windows工具包\10\include\10.0.17763.0\cppwinrt"/EHsc/Tpsrc/PoissonCon_v6_13/src/CmdLineParser.cpp/Fobuild\temp.win-ad64-3.6\Release \src/PoissonCon_v6_13/src/CmdLineParser.obj-w-fopenmp cl:命令行警告D9025:用"/w"覆盖"/W3"cl:命令行将警告D9002:忽略未知选项'-fopenmp'CmdLineParser.cpp C:\Program Files(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe/c/nologo/Ox/W3/GL/DNDEBUG/MD"-IC:\Users\IbrahimKhalilullah.conda\envs\PypoisonOpen3d\lib\site-packages\numpy\core\include"-IC:\Users\Ibrahim Khalilullah.conda\envs\PypoisonOpen3d\include"-IC:\Users\Ibrahim Khalilullah.conda\envs\PypoisonOpen3d\include"-IC:\Program Files(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include"-IC:\Program Files(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\include"-IC:\Program文件(x86)\Windows Kits\NETFXSDK\4.6.1\include\um"-IC:\ProgramFiles(x86)\Windows Kits\10\include\10.0.17763.0\ucrt"-IC:\Program文件(x86)\Windows Kits\10\include\10.0.17763.0\shared"-IC:\Program文件(x86)\Windows工具包\10\include\10.0.17763.0\um"-IC:\Program文件(x86)\Windows Kits\10\include\10.0.17763.0\winrt"-IC:\Program文件(x86)\Windows工具包\10\include\10.0.17763.0\cppwinrt"/EHsc/Tpsrc/PoissonCon_v6_13/src/Factor.cpp/Fobuild\temp.win-ad64-3.6\Release \src/PoissonCon_v6_13/src/Factor.obj-w-fopenmp cl:命令行警告D9025:用"/w"覆盖"/W3"cl:命令行将警告D9002:忽略未知选项'-fopenmp'Factor.cpp C:\Program Files(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe/c/nologo/Ox/W3/GL/DNDEBUG/MD"-IC:\Users\IbrahimKhalilullah.conda\envs\PypoisonOpen3d\lib\site-packages\numpy\core\include"-IC:\Users\Ibrahim Khalilullah.conda\envs\PypoisonOpen3d\include"-IC:\Users\Ibrahim Khalilullah.conda\envs\PypoisonOpen3d\include"-IC:\Program Files(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include"-IC:\Program Files(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\include"-IC:\Program文件(x86)\Windows Kits\NETFXSDK\4.6.1\include\um"-IC:\ProgramFiles(x86)\Windows Kits\10\include\10.0.17763.0\ucrt"-IC:\Program文件(x86)\Windows Kits\10\include\10.0.17763.0\shared"-IC:\Program文件(x86)\Windows工具包\10\include\10.0.17763.0\um"-IC:\Program文件(x86)\Windows Kits\10\include\10.0.17763.0\winrt"-IC:\Program文件(x86)\Windows工具包\10\include\10.0.17763.0\cppwinrt"/EHsc/Tpsrc/PoissonCon_v6_13/src/Geometry.cpp/Fobuild\temp.win-ad64-3.6\Release \src/PoissonCon_v6_13/src/Geometry.obj-w-fopenmp cl:命令行警告D9025:用"/w"覆盖"/W3"cl:命令行将警告D9002:忽略未知选项"-fopenmp"Geometry.cppd: \feasibilityanalysis2020_3\3dpointcloud3dvision\removenoiseandtin\code\pyppoisson \src\ppoisonrecon_v6_13\src\Geometry.h(33):致命错误C1189:#error:OpenMP是必需的错误:命令'C:\Program Files(x86)\Microsoft VisualStudio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe失败,退出状态为2

不仅针对此源代码,而且针对其他未能构建的代码。需要注意的是,我在电脑中安装了visual 2015、visual 2017、GCC编译器。操作系统是Windows 10。

不同的源代码需要不同类型的编译器,我该如何解决这个问题?

该输出的关键部分是fatal error C1189: #error: OpenMP is required。我想,这意味着你需要有OpenMP,但你没有。还有另一个关于在Windows上安装OpenMP的SO线程,其中包括一些最近的答案。

最新更新