Как заставить cmake находить pybind11

Я пытаюсь следовать простому примеру встраивания python в c ++ с использованием pybind11, как показано на эту страницу. Однако при попытке использовать cmake для создания решения я продолжаю получать сообщение об ошибке

Не предоставляя Findpybind11.cmake в CMAKE_MODULE_PATH, этот проект попросил CMake найти файл конфигурации пакета, предоставленный pybind11, но CMake его не нашла.

Не удалось найти файл конфигурации пакета, предоставленный pybind11, с любым из следующих имен:

pybind11Config.cmake
pybind11-config.cmake

У меня есть папка pybindtest на моем рабочем столе, которая включает CMakeLists.txt и main.cpp, как описано в приведенной выше ссылке, а также папку сборки, которую я создал. Находясь в папке сборки, я безрезультатно пробовал следующие строки (работает на Powershell 7):

cmake ..
cmake .. -Dpybind11_DIR=C:/Users/ben.wolfley/Anaconda3/Library/share/cmake/pybind11/pybind11Config.cmake
cmake .. -DCMAKE_MODULE_PATH=C:/Users/ben.wolfley/Anaconda3/Library/share/cmake/pybind11

Я установил pybind11, используя conda install pybind11, а pybind11Config.cmake находится в C:\Users\ben.wolfley\Anaconda3\Library\share\cmake\pybind11


person bwolf    schedule 04.08.2020    source источник
comment
Если вы попытаетесь использовать cmakegui, должна быть переменная с именем pybind11_DIR или что-то в этом роде. Можете ли вы попробовать установить его в каталог * .cmake и попробовать еще раз?   -  person user3389943    schedule 04.08.2020
comment
Или я думаю, вы должны были установить CMAKE_PREFIX_PATH, а не CMAKE_MODULE_PATH   -  person user3389943    schedule 04.08.2020
comment
... и pybind11Config.cmake находится в C:\Users\ben.wolfley\Anaconda3\Library\share\cmake\pybind11 - поэтому установите переменную pybind11_DIR в этот каталог, как предлагает сообщение об ошибке (не в файл в нем, как вы в настоящее время установили) .   -  person Tsyvarev    schedule 05.08.2020


Ответы (1)


Спасибо Цывареву за то, что указал мне в правильном направлении. Сработала следующая команда:

cmake .. -G "Visual Studio 15 2017" -A x64 `
      -Dpybind11_DIR=C:/Users/ben.wolfley/Anaconda3/Library/share/cmake/pybind11/

Я указывал на файл .cmake, а не на каталог с файлом. Мне также пришлось указать компилятор, чтобы код работал.

person bwolf    schedule 04.08.2020