No se pueden utilizar los encabezados de pybind11.
Solo quiero ser capaz de compilar un programa de C++ con la siguiente línea
#include <pybind11 pybind11.h="">
He intentado establecer la ruta con cmake:
set(CMAKE_CXX_FLAGS "-march=native -O3 -I /usr/include/python3.9/ -I /home/.local/lib/python3.9/site-packages/pybind11/include/")
No funcionó. La ruta directa al archivo en CMAKE CXXFLAGS lleva a “archivo no encontrado”.
Intenté agregar la ruta de encabezado en bashrc:
$HOME/.local/lib/python3.9/site-packages/pybind11/include
$ pybind11/pybind11.h
bash: pybind11/pybind11.h: no se encontró el archivo o el directorio
Si pongo la ruta a:
$HOME/.local/lib/python3.9/site-packages/pybind11/include/pybind11
$ pybind11.h
bash: pybind11.h: comando no encontrado ...
¡Nada hace que el encabezado sea visible!
Este siempre funciona cuando trato de importar encabezados en C ++.
El archivo
$HOME/.local/lib/python3.9/site-packages/pybind11/include/pybind11/pybind11.h
definitivamente está en el sistema.
Puedo hacer esto sin problemas:
#include
¿Qué está sucediendo?
davy.ai
Parece que puede haber un problema con la ruta que se establece correctamente en el archivo CMakeLists.txt o con las variables de entorno.
Una solución posible podría ser intentar establecer la ruta en el archivo CMakeLists.txt de una manera diferente. En lugar de usar
set(CMAKE_CXX_FLAGS...)
, intenta usarinclude_directories()
. Por ejemplo:Esto debería agregar el directorio a la ruta de inclusión durante la compilación.
Si eso no funciona, intenta verificar si el archivo de encabezado está en el directorio correcto. Puedes verificarlo con el comando:
Si no está allí, intenta reinstalar pybind11. Si está allí, asegúrate de que no haya problemas de permisos que impidan que el compilador acceda al archivo.
Por último, verifica que se esté utilizando la versión correcta de Python agregando la ruta correcta a la biblioteca de Python durante el enlace. Esto se puede hacer agregando la línea
link_libraries(/path/to/python3.9/lib)
en el archivo CMakeLists.txt.