一、安装方式
1、下载cyberrt
2、cmake指令如下
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/opt/cyber_rt/" -D PYTHON3_PACKAGES_PATH=/home/xx/anaconda3/lib/python3.10/site-packages -D PYTHON3_EXCUTABLE=/home/xx/anaconda3/bin/python3.10 -D PYTHON3_INCLUDE_DIR=/home/xx/anaconda3/include/python3.10 -D PYTHON3_LIBRARY=/home/xx/anaconda3/lib/libpython3.10.so.1.0
3、安装即可
二、问题解决
问题一、系统proto版本与anaconda中proto版本冲突
解决方案:Ubuntu Anaconda 环境下删除 protobuf
sudo rm -rf /xx/anaconda3/bin/protoc //执行文件
sudo rm -rf /xx/anaconda3/include/google //头文件
sudo rm -rf /xx/anaconda3/lib/libproto* //库文件
问题二
SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
分别在如下文件中(包含#include<Python.h>)添加#define PY_SSIZE_T_CLEAN
/home/xx/Downloads/teamfile/software/cyberrt_fastrtps/cyber_rt/cyber/python/internal/py_cyber.cc
/home/xx/Downloads/teamfile/software/cyberrt_fastrtps/cyber_rt/cyber/python/internal/py_parameter.cc
/home/xx/Downloads/teamfile/software/cyberrt_fastrtps/cyber_rt/cyber/python/internal/py_record.cc
/home/xx/Downloads/teamfile/software/cyberrt_fastrtps/cyber_rt/cyber/python/internal/py_time.cc
如下
#define PY_SSIZE_T_CLEAN
#include <Python.h>
完成安装