Cython включает ошибку для установки catkin_pkg - PullRequest
0 голосов
/ 16 июня 2020

Я использую следующий код из здесь в setup.py , чтобы создать python оболочку класса c ++:

## ! DO NOT MANUALLY INVOKE THIS setup.py, USE CATKIN INSTEAD
from distutils.core import setup
from catkin_pkg.python_setup import generate_distutils_setup

setup_args = generate_distutils_setup(
    packages=['hw_interface_pkg'],
    package_dir={'': 'src'},
    requires=['std_msgs', 'rospy'],
)
setup(**setup_args)

the ошибка, которую я получаю:

/src/cython/hw_interface.c:482:
/include/remote_hw.h:6:10: fatal error: array: No such file or directory
 #include <array>
          ^~~~~~~

, что является самым первым включением в заголовок. После этого потока , этого потока и этого потока основное решение, кажется, добавляет language="c++" в аргументы. Однако это не решило проблему для меня, и приведенный выше код также сильно отличается от того, который использовался в этих потоках. (он использует "generate_distutils_setup" вместо "cythonize" или "Extension").

Помимо стандартного c ++ включает в себя, например, #include <array>, есть и другие, которые я не уверен, что установка найдет их. Может кто-нибудь предложить возможное решение для этого? может ли эта проблема быть вызвана подробностями CMakelists.txt?

1 Ответ

0 голосов
/ 16 июня 2020

Решение заключалось в добавлении «set_source_files_properties» в дочерний файл CMakeLists.txt, как показано ниже.

... 
set_source_files_properties(hw_interface.pyx PROPERTIES CYTHON_IS_CXX TRUE)
cython_add_module(hw_interface hw_interface.pyx ../fibonacci.cpp)
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...