curaengine编译源码之libarcus编译记录

news/2024/6/18 20:29:24 标签: c++

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包名一致。

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

这个应该是包名不同,包sipbuild应该改成sip,同时把包sip-版本号.dist-info内的有个toplevel的txt文件内容改成现在的包名sip
可以敲以下命令检测sip模块是否安装好:
验证 sip 是否可导入:

bash

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版本不能用这套

$ mkdir build && cd build
$ cmake ..
$ make
$ make install
最难的就是cmake这一步,经常报错,一般都是缺包或者版本不匹配。


http://www.niftyadmin.cn/n/5477271.html

相关文章

速盾:前端挂载到cdn托管

随着互联网的发展,网站访问速度成为了用户考虑的重要因素之一。而前端挂载到CDN(内容分发网络)托管,可以极大地提高网站的访问速度,带来许多优势。下面我们将详细介绍一下前端挂载到CDN托管的优势。 加速网站访问速度…

大家问的最多的问题统一回复

每天都有很多人问我问题,大部分问题都是重复的,我统一回复下,如果你要问以下问题不要打扰我,我也有工作也很忙。 1、你为什么要做这套系统? 答:最开始以为能卖了赚钱,后来成了自己消磨无聊时间的爱好&…

《策略模式(极简c++)》

本文章属于专栏- 概述 - 《设计模式(极简c版)》-CSDN博客 本章简要说明适配器模式。本文分为模式说明、本质思想、实践建议、代码示例四个部分。 模式说明 方案:策略模式是一种行为设计模式,它定义了一系列算法,将每…

深入了解iOS内存(WWDC 2018)笔记-内存诊断

主要记录下用于分析iOS/macOS 内存问题的笔记。 主要分析命令: vmmap, leaks, malloc_history 一:前言 有 3 种思考方式 你想看到对象的创建吗?你想要查看内存中引用对象或地址的内容吗?或者你只是想看看 一个实例有多大&#…

【操作系统】第三章 存储器管理

存储器管理 3.1 存储的层次结构3.1.1 存储的层次结构3.1.2 存储管理的目的3.1.3 基本概念 3.2 程序的装入和链接3.2.1 程序的装入3.2.2 程序的链接3.2.3 重定位 3.3 连续分配存储管理3.3.1 单一连续内存空间管理3.3.2 固定分区分配3.3.3 可变分区分配3.3.4 可重定位分区分配 3.…

OpenHarmony实战:Combo解决方案之W800芯片移植案例

本方案基于OpenHarmony LiteOS-M内核,使用联盛德W800芯片的润和软件海王星系列Neptune100开发板,进行开发移植。 移植架构采用Board与SoC分离方案,支持通过Kconfig图形化配置编译选项,增加玄铁ck804ef架构移植,实现了…

OpenCV单通道图像按像素成倍比例放大(无高斯平滑处理)

OpenCV中的resize函数可以对图像做任意比例的放大(/缩小)处理,该处理过程会对图像做高斯模糊化以保证图像在进行放大(/缩小)后尽可能保留源图像所展现的具体内容(消除固定频率插值/采样带来的香农采样信息损失)&#x…

【JavaWeb】Day38.MySQL概述——数据库设计-DQL

数据库设计——DQL 介绍 DQL英文全称是Data Query Language(数据查询语言),用来查询数据库表中的记录。 查询关键字:SELECT 查询操作是所有SQL语句当中最为常见,也是最为重要的操作。在一个正常的业务系统中,查询操作的使用频次…