Linux下编译lib-artnet-4-cpp
一、Art-Net简介
Art-Net是一种通信协议,用于通过UDP传输DMX512-A照明控制协议和远程设备管理(RDM)协议。该协议用于实现“节点”(如智能照明设备)与“服务器”(运行照明控制软件的调光台或通用计算机)之间的通信,广泛应用于灯光控制及以太网DMX应用场景。
二、lib-artnet-4-cpp简介
lib-artnet-4-cpp是Art-Net 4协议的现代C++(C++17)实现,该库提供了一种基于Art-Net协议的稳健高效通信方式。其github地址为:https://github.com/gastonmorixe/lib-artnet-4-cpp
三、下载编译lib-artnet-4-cpp
首先从 https://github.com/gastonmorixe/lib-artnet-4-cpp 下载lib-artnet-4-cpp源码,拷贝到Linux系统中,解压缩,进入源码目录。
执行cmake:
cmake . -DCMAKE_INSTALL_PREFIX=$(pwd)/install
可能会报错:“CMake 3.31.2 or higher is required...”:

这是因为lib-artnet-4-cpp需要3.31.2或更高版本的cmake来生成makefile,如果报上述错误,修改CMakeLists.txt。将“cmake_minimum_required(VERSION 3.31.2)”这一行修改为“cmake_minimum_required(VERSION XXX)”,其中XXX为你电脑上安装的cmake的版本号。
修改完成后重新执行“cmake . -DCMAKE_INSTALL_PREFIX=$(pwd)/install”,如果没有报错并且生成了makefile,说明cmake执行成功了。
编译:
make
如果报错:“sys/_endian.h:没有那个文件或目录”

修改源文件artnet/ArtNetController.cpp,将“#include <sys/_endian.h>”这一行修改为:“#include <endian.h>”。
重新编译,如果还是报错:

头文件artnet/artnet_types.h增加一行:“#include <cstring>”
重新通过make命令编译,应该就可以发现编译成功了。但由于lib-artnet-4-cpp的特性,是没办法make install的:

所以不需要make install,只要进行make后,artnet目录下就生成了libartnet.a,该文件是lib-artnet-4-cpp的库文件。artnet目录下的.h文件是lib-artnet-4-cpp的头文件。所以要想使用lib-artnet-4-cpp只要包含这些库文件和头文件就可以了:

artnet目录的example目录下生成的就是lib-artnet-4-cpp的例程:

