Я пытаюсь заставить библиотеку, написанную на C ++, работать на python, используя pybind11.
Компиляция и сборка исходных файлов работает без ошибок, но получающиеся файлы выдают эту ошибку при установке с помощью pip.
CMake Error at pybind11/tools/pybind11Tools.cmake:131 (add_library):
Cannot find source file:
../project/variables.cpp
Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm
.hpp .hxx .in .txx
Call Stack (most recent call first):
CMakeLists.txt:5 (pybind11_add_module)
CMake Error at pybind11/tools/pybind11Tools.cmake:131 (add_library):
No SOURCES given to target: project
Call Stack (most recent call first):
CMakeLists.txt:5 (pybind11_add_module)
Я следую за cmake_example , и я уверен, что файл существует. На самом деле, если я удаляю файл, ошибка возникает при запуске
python setup.py sdist
Структура папок выглядит следующим образом:
C++ project root folder
|-- C++ Project source files
|-- pybind folder
|------pybind11 source folder
|----------pybind.cpp file
|------pybind11 CmakeLists.txt
|------pybind11 Manifest.in
Это CMakeLists.txt, используемый pybind.
cmake_minimum_required(VERSION 2.8.12)
project(project)
add_subdirectory(pybind11)
pybind11_add_module(project
project/pybind.cpp
../project/variables.cpp
../project/instances.cpp
.
.
.
)
И исходные папки C ++ и pybind включены в файл Manifest.in
. Кроме того, нет ошибок при обращении к файлу project/pybind.cpp
.
Кроме того, этот метод сборки модуля python работал для меня пару месяцев назад в том же проекте. Я пробовал downgradein setuptools, pybind11 и cmake, но он не работает. Возможно, я ошибаюсь, но я думаю, что единственными шагами, которые я сделал, было добавление пары заголовков C ++ в проект и функции som в файле pybind.cpp
.