curaengine编译源码之libarcus编译记录

libArcus的编译(成功安装)

This library contains C++ code and Python3 bindings for creating a socket in a thread and using this socket to send and receive messages based on the Protocol Buffers library. It is designed to facilitate the communication between Cura and its backend and similar code.

翻译:
Arcus这个库(包含C++代码和Python3绑定),用于在线程中创建套接字,并使用这个套接字基于Protocol Buffers库发送和接收消息。它的设计目的是促进Cura与其后端以及类似代码之间的通信。

Building

To build the library, the following packages are needed:

编译

要编译这个库,需要以下软件包:

1、Protobuf 3 (3.0+)

注意版本要与libarcus的匹配,我下载的5.0版本,要求3.17版本以上,但注意3.20以上的话有几个函数参数要变(减掉一个参数就行)

2、Cmake

CMake To build the python bindings (default on, disable with -DBUILD_PYTHON=OFF) these additional libries are needed:

(1)python3-dev (3.4+)

注意cmakelist里面的python路径要和下载的版本一致

(2)python3-sip-dev (4.16+)

注意这个sip包,名字不一定叫这个,这个只是linux用aptget的叫的名字,比如windows下python安装命令 pip install sip安装的就叫sipbuild,注意下载后要把名字改成sip

注意cmakelist里的find包里的名字要和这个sip包名一致。
注意sipbuild和sipdistinfo包必须都有(下载的就是这两个,然后还得有一个名叫sip的包,可以直接把sipbuild复制过来改名)

(3)下载了sip却ModuleNotFoundError: No module named 'sip'

这个应该是包名不同,应该需要一个叫sip的包,可以这样做第一步:把sipbuild复制一份,副本的名字改成sip,同时把原sipbuild包保留(因为cmake必须要有)。第二步:同时把包sip-版本号.dist-info内的有个toplevel的txt文件内容改成现在的包名sip

可以敲以下命令检测sip模块是否安装好:

验证 sip 是否可导入:

bash

cpp 复制代码
python3.9 -c "import sip; print(sip.__file__)"

如果没有错误,并且显示了 sip 模块的路径,那么说明 sip 已经可以被Python解释器正确导入。

如果你仍然遇到问题,可能需要检查你的Python安装是否完整,或者考虑重新安装 sip 和相关的绑定库(如PyQt或PySide)。确保你使用的是与你的Python版本兼容的库版本

3、流程

Building the library can be done with:
编译的是5.0以下version,注意main版本不能用这套

cmakelist的修改

if(NOT DEFINED Python_VERSION)的前面可以加以下内容防止编译器找不到python解释器 :一定要用你的python版本号和你的python路径(不知道可以用which python查看)

示例:

css 复制代码
 set(Python_VERSION 3.9)
 set(Python_VERSION_EXACT TRUE)
 set(Python_EXECUTABLE /usr/bin/python3)

还有这个sip包的名字一定要改成sip: find_package(SIP REQUIRED 6.5.0)改成

bash 复制代码
 find_package(sip REQUIRED 6.5.0)

接下来编译安装即可:

$ mkdir build && cd build

$ cmake ..

$ make

$ make install

最难的就是cmake这一步,经常报错,一般都是缺包或者版本不匹配。
make install成功的结果应该是这样,且不会报错。
注意这个最后两行的pyArcus.sopy两个文件一定要有才说明sip包的binding是成功安装的

相关推荐
转调10 分钟前
每日一练:地下城游戏
开发语言·c++·算法·leetcode
wdxylb1 小时前
使用C++的OpenSSL 库实现 AES 加密和解密文件
开发语言·c++·算法
CSP126361 小时前
特别节目————集训总结
c++
程序猿阿伟1 小时前
《C++游戏人工智能开发:开启智能游戏新纪元》
c++·人工智能·游戏
一线青少年编程教师2 小时前
线性表三——队列queue
数据结构·c++·算法
C2 小时前
C++_智能指针详解
开发语言·c++
qinzechen2 小时前
分享几个做题网站------学习网------工具网;
java·c语言·c++·python·c#
丶Darling.3 小时前
代码随想录 | Day26 | 二叉树:二叉搜索树中的插入操作&&删除二叉搜索树中的节点&&修剪二叉搜索树
开发语言·数据结构·c++·笔记·学习·算法
小飞猪Jay3 小时前
面试速通宝典——10
linux·服务器·c++·面试
程序猿阿伟4 小时前
《C++高效图形用户界面(GUI)开发:探索与实践》
开发语言·c++