pybind11 “Python is 64-bit, chosen compiler is 32-bit”

元气小坏坏 提交于 2021-02-02 06:45:11

问题


I'm trying to compile pybind11 on a Windows machine that has VisualStudio 2015 installed. I also have python 3.5.3 64bit installed, and cmake 2.8.12. I get the error:

CMake Error at tools/FindPythonLibsNew.cmake:122 (message):
  Python config failure: Python is 64-bit, chosen compiler is 32-bit
Call Stack (most recent call first):
  tools/pybind11Tools.cmake:16 (find_package)
  CMakeLists.txt:28 (include)

I did not "choose" the compiler to be 32-bit, and looking at the CMakeLists.txt, I did not find any place to specify which compiler to run. So how to I tell pybind11/cmake to compile for 64 bit?


回答1:


You should specify the 64-bit VS compiler like so:

cmake "/path/to/src/" -G"Visual Studio 14 2015 Win64"

Otherwise it selects the 32-bit by default.




回答2:


If you are using the Ninja generator and you have this error make sure you run the VS Dev command prompt in 64-bit mode:

VsDevCmd.bat arch=amd64 && cmake <options> ... 



回答3:


You can either do :

cmake .. -G"Visual Studio 14 2015 Win64"
cmake --build . --config Release --target check

or based on this quote from the Compiling the test cases for windows section here:

If all tests fail, make sure that the Python binary and the testcases are compiled for the same processor type and bitness (i.e. either i386 or x86_64). You can specify x86_64 as the target architecture for the generated Visual Studio project using cmake -A x64 ..

You can do :

cmake -A x64 ..
cmake --build . --config Release --target check


来源:https://stackoverflow.com/questions/45397986/pybind11-python-is-64-bit-chosen-compiler-is-32-bit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!