源码编译安装

您所在的位置:网站首页 linux怎么打开idl 源码编译安装

源码编译安装

2024-04-29 01:29| 来源: 网络整理| 查看: 265

源码编译安装 ​

作为一款用于物联网边缘的超轻量级 MQTT 消息服务器,NanoMQ 支持在各种边缘平台运行,例如支持 x86_64 和 ARM 等架构。

前置准备 ​

正式安装前,请先安装以下依赖项:

支持 C99 标准的编译环境GitCMake:3.13 或以上源码编译 ​

在 NanoMQ 的安装目录,运行以下命令进行编译: Ninja非必须,可以使用传统 Make 命令编译

bashgit clone https://github.com/emqx/nanomq.git cd nanomq git submodule update --init --recursive mkdir build && cd build cmake -G Ninja .. ninjabashgit clone https://github.com/emqx/nanomq.git cd nanomq git submodule update --init --recursive mkdir build && cd build cmake .. make

编译完成后,您将在命令行窗口看到类似提示:

bash[495/495] Linking CXX executable nng/tests/cplusplus_pair启动 NanoMQ ​

编译完成后,您可在 build -> NanoMQ 找到相关可执行文件。

运行以下命令启动 NanoMQ:

bash./nanomq start

成功启动后,您可在命令行窗口看到以下提示:

bashNanoMQ Broker is started successfully!更多编译选项 ​

除常见设置(如 CMAKE_BUILD_TYPE)外,你还可通过 CMake 配置更多高级功能,如启用 MQTT over QUIC 数据桥接或 ZMQ 网关,一些常见的编译选项参见下表:

编译选项说明-DNNG_ENABLE_QUIC=ON启用 QUIC 桥接-DENABLE_AWS_BRIDGE=ON启用 AWS IoT Core 桥接注意:AWS IoT Core 桥接与 MQTT over QUIC 桥接暂不兼容,请选择启用一种桥接。-DNNG_ENABLE_TLS=ON编译启用 TLS,依赖项:mbedTLS-DBUILD_CLIENT=OFF停用客户端套件,包括 pub、sub 、conn-DBUILD_ZMQ_GATEWAY=ON启用 ZeroMQ 网关-DBUILD_DDS_PROXY=ON启用 DDS Proxy,包括 proxy、sub、pub-DBUILD_VSOMEIP_GATEWAY开启 vsomeip gateway-DBUILD_NNG_PROXY开启 nng proxy-DBUILD_BENCH=ON编译启用 MQTT Bench-DENABLE_JWT=ON编译启用 HTTP Server 所需的 JWT 依赖项-DNNG_ENABLE_SQLITE=ON支持 SQLite-DBUILD_STATIC_LIB=ON作为静态库编译-DBUILD_SHARED_LIBS=ON作为共享库编译-DDEBUG=ON启用调试标志-DASAN=ON启用 Sanitizer-DNOLOG=1关闭 Log 系统,提高性能-DDEBUG_TRACE=ON启用 ptrace,用于进程跟踪和检查-DENABLE_RULE_ENGINE=ON启用规则引擎-DENABLE_MYSQL=ON启用 MySQL-DENABLE_ACL启用 ACL-DENABLE_SYSLOG启用 syslog-DNANOMQ_TESTS启用 NanoMQ 单元测试MQTT over QUIC 数据桥接 ​

依赖项:libmsquic

NanoMQ 支持通过 MQTT over QUIC 协议与 EMQX 5 进行桥接。

由于兼容性问题,目前尚未发布支持 QUIC 的二进制包。如希望使用 MQTT over QUIC,应通过编译方式安装 NanoMQ,命令如下:

bashcmake -G Ninja -DNNG_ENABLE_QUIC=ON .. ninjaTLS ​

依赖项: mbedTLS

默认情况下,TLS 为未启用状态。如希望启用,可在编译阶段通过 -DNNG_ENABLE_TLS=ON 启用。

Ninja:

bashcmake -G Ninja -DNNG_ENABLE_TLS=ON ..

make:

bashcmake -DNNG_ENABLE_TLS=ON ..

TIP

关于 TLS 的详细配置参数,可参考配置文件 etc/nanomq_example.conf

客户端管理 ​

NanoMQ 会在构建时默认安装客户端工具(pub、sub 、conn)。如希望禁用客户端工具,可通过 -DBUILD_CLIENT=OFF 实现:

bashcmake -G Ninja -DBUILD_CLIENT=OFF .. ninja网关工具 ​

默认情况下,网关为未启用状态。如希望启用,如 ZMQ 网关,可通过 -DBUILD_ZMQ_GATEWAY=ON 实现:

cmake -G Ninja -DBUILD_ZMQ_GATEWAY=ON .. ninjaBenchmark 基准测试工具 ​

默认情况下,Benchmark 为未启用状态。如希望启用,可通过 -DBUILD_BENCH=ON 实现:

cmake -G Ninja -DBUILD_BENCH=ON .. ninjaJWT 依赖 ​

HTTP Server 的 JWT 依赖默认未启用。如希望启用,可通过 -DENABLE_JWT=ON 实现:

cmake -G Ninja -DENABLE_JWT=ON .. ninjaSQLite 支持 ​

NanoMQ 支持通过 SQLite3 实现消息的持久化,该功能默认未启用。如希望启用,可通过 -DNNG_ENABLE_SQLITE=ON 实现:

cmake -G Ninja -DNNG_ENABLE_SQLITE=ON .. ninja静态库 ​

如通过以静态库的方式编译 NanoMQ,可通过 -DBUILD_STATIC_LIB=ON 实现:

cmake -G Ninja -DBUILD_STATIC_LIB=ON .. ninja libnano共享库 ​

如通过以共享库的方式编译 NanoMQ,可通过 -DBUILD_SHARED_LIBS=ON 实现:

cmake -G Ninja -DBUILD_SHARED_LIBS=ON .. ninjaNanoNNG 依赖 ​

NanoNNG 是含 MQTT 支持的 NNG 仓库分支,由 NanoMQ 自行维护,可单独编译:

cd nng/build cmake -G Ninja .. ninja性能调优 ​

NanoMQ 提供了多种性能调优方式,您可根据需求进行选择。

参数设置 ​

线程数量限制

sh$PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DNNG_RESOLV_CONCURRENCY=1 -DNNG_NUM_TASKQ_THREADS=5 -DNNG_MAX_TASKQ_THREADS=5 ..

调试:NanoMQ 提供调试功能,启用后,将按照 Syslog 标准记录所有线程信息。您可选择禁用/启用该功能。

sh$PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DNOLOG=1 .. $PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DNOLOG=0 ..

MQTT 客户端:MQTT 客户端默认启用,您可通过 -DBUILD_CLIENT=OFF 禁用。

bash# Disable client $PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DBUILD_CLIENT=OFF .. # Enable client $PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DBUILD_CLIENT=ON ..

消息队列:mqueue 消息队列默认启用,但 macOS 系统中暂不支持,您可通过 -DMQ=0 禁用。

sh# Enable MQ $PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DMQ=1 .. # Disable MQ $PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DMQ=0 ..系统调优 ​

TIP

运行以下命令前,请根据实际场景替换 {size}、 {PARALLEL} 字段。

为 MQTT 数据包设置固定头加可变头最大长度,默认为 64 字节:

sh$PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DNANO_PACKET_SIZE={size} ..

为 MQTT 数据包设置固定头最大长度,默认为 5 字节:

sh$PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DNANO_HEADER_SIZE={size} ..

为 MQTT 数据包设置属性最大长度,默认为 32 字节:

sh$PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DNANO_PROPERTY_SIZE={size} ..

为 QOS > 0的消息设置队列长度,默认为 64:

sh$PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DNANO_QOS_LEN={size} ..

设置重发消息的队列长度,默认为 64:

sh$PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DNANO_MSQ_LEN={size} ..

设置逻辑并发数限制,默认为 32,使用 -DPARALLEL 指定:

sh$PROJECT_PATH/nanomq/build$ cmake -G Ninja -DCFG_METHOD=CMAKE_CONFIG -DPARALLEL={PARALLEL} ..


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3