8

我正在尝试在安装了 VisualStudio 2015 的 Windows 机器上编译 pybind11。我还安装了 python 3.5.3 64bit 和 cmake 2.8.12。我得到错误:

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)

我没有“选择”编译器为 32 位,并且查看 CMakeLists.txt,我没有找到任何地方来指定要运行哪个编译器。那么如何告诉 pybind11/cmake 编译为 64 位?

4

3 回答 3

11

您应该像这样指定 64 位 VS 编译器:

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

否则默认选择 32 位。

于 2017-07-30T16:09:51.660 回答
3

如果您使用 Ninja 生成器并且遇到此错误,请确保在 64 位模式下运行 VS Dev 命令提示符:

VsDevCmd.bat arch=amd64 && cmake <options> ... 
于 2019-02-20T19:18:06.380 回答
1

你可以这样做:

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

或基于此处为 Windows 编译测试用例部分的引用:

如果所有测试都失败,请确保 Python 二进制文件和测试用例针对相同的处理器类型和位数(即 i386 或 x86_64)进行编译。您可以使用 cmake -A x64 .. 将 x86_64 指定为生成的 Visual Studio 项目的目标体系结构。

你可以做 :

cmake -A x64 ..
cmake --build . --config Release --target check
于 2020-03-27T09:35:51.343 回答