tencent cloud

物联网通信

动态与公告
产品动态
产品简介
产品概述
产品功能
产品优势
应用场景
产品限制
基本概念
快速入门
快速开始
场景一:设备互通
场景二:设备状态上报与状态设置
MQTT.fx接入指南
控制台使用手册
产品管理
规则引擎
子账号访问IoT
固件升级
资源管理
证书管理
开发者手册
功能组件
签名方法
设备身份认证
设备接入协议
网关子设备
消息通信
设备影子
设备固件升级
设备远程配置
资源管理
设备日志上报
NTP服务
设备端接入手册
设备接入概述
基于C SDK接入
基于 Android SDK 接入
基于 Java SDK 接入
基于 Python SDK 接入
API 文档
History
Introduction
API Category
Making API Requests
Device Shadow APIs
Device APIs
CA Certificate APIs
Product APIs
Data Types
Error Codes
常见问题
一般性问题
设备接入和上报问题
规则引擎问题
控制台相关问题
IoT Hub 政策
隐私协议
数据处理和安全协议
词汇表

编译配置说明

PDF
聚焦模式
字号
最后更新时间: 2024-12-27 16:55:24
本文档对 C SDK 的编译方式和编译配置选项进行说明,并介绍了 Linux 和 Windows 开发环境下的编译环境搭建以及编译示例。

C SDK 编译方式说明

C SDK 支持以下编译方式。

cmake 方式

推荐使用 cmake 作为跨平台的编译工具,支持在 Linux 和 Windows 开发环境下进行编译。
cmake 方式采用 CMakeLists.txt 作为编译配置选项输入文件。

Makefile 方式

对于不支持 cmake 的环境,使用 Makefile 直接编译的方式。
Makefile 方式与 SDK v3.0.3及之前的版本保持一致,采用 make.settings 作为编译配置选项输入文件,修改完成后执行 make 即可。

代码抽取方式

该方式可根据需求选择功能,将相关代码抽取到一个单独的文件夹,文件夹里面的代码层次目录简洁,方便用户拷贝集成到自己的开发环境。
该方式需要依赖 cmake 工具,在 CMakeLists.txt 中配置相关功能模块的开关,并将 EXTRACT_SRC 设置为 ON,在 Linux 环境运行以下命令:
mkdir build
cd build
cmake ..
即可在 output/qcloud_iot_c_sdk 中找到相关代码文件,目录层次如下:
qcloud_iot_c_sdk
├── include
│   ├── config.h
│   ├── exports
├── platform
└── sdk_src
└── internal_inc
include 目录为 SDK 供用户使用的 API 及可变参数,其中 config.h 为根据编译选项生成的编译宏。
platform 目录为平台相关的代码,可根据设备的具体情况进行修改适配。
sdk_src 为 SDK 的核心逻辑及协议相关代码,一般无需修改,其中 internal_inc 为 SDK 内部使用的头文件。
说明:
用户可将 qcloud_iot_c_sdk 拷贝到其目标平台的编译开发环境,并根据具体情况修改编译选项。

C SDK 编译选项说明

编译配置选项

以下配置选项大部分都适用于 cmake 和 make.setting。cmake 中的 ON 值对应于 make.setting 的 y,OFF 对应于 n。
名称
cmake 值
说明
BUILD_TYPE
release/debug
release:不启用 IOT_DEBUG 信息,编译输出到 release 目录下。
debug:启用 IOT_DEBUG 信息,编译输出到 debug 目录下。
EXTRACT_SRC
ON/OFF
代码抽取功能开关,仅对使用 cmake 有效。
COMPILE_TOOLS
gcc
支持 gcc 和 msvc,也可以是交叉编译器。例如 arm-none-linux-gnueabi-gcc。
PLATFORM
Linux
包括 Linux/Windows/Freertos/Nonos。
FEATURE_MQTT_COMM_ENABLED
ON/OFF
MQTT 通道总开关。
FEATURE_MQTT_DEVICE_SHADOW
ON/OFF
设备影子总开关。
FEATURE_COAP_COMM_ENABLED
ON/OFF
CoAP 通道总开关。
FEATURE_GATEWAY_ENABLED
ON/OFF
网关功能总开关。
FEATURE_OTA_COMM_ENABLED
ON/OFF
OTA 固件升级总开关。
FEATURE_OTA_SIGNAL_CHANNEL
MQTT/COAP
OTA 信令通道类型。
FEATURE_AUTH_MODE
KEY/CERT
接入认证方式。
FEATURE_AUTH_WITH_NOTLS
ON/OFF
OFF:TLS 使能, ON:TLS 关闭。
FEATURE_DEV_DYN_REG_ENABLED
ON/OFF
设备动态注册开关。
FEATURE_LOG_UPLOAD_ENABLED
ON/OFF
日志上报开关。
FEATURE_EVENT_POST_ENABLED
ON/OFF
事件上报开关。
FEATURE_DEBUG_DEV_INFO_USED
ON/OFF
设备信息获取来源开关。
FEATURE_SYSTEM_COMM_ENABLED
ON/OFF
获取后台时间开关。
FEATURE_AT_TCP_ENABLED
ON/OFF
AT 模组 TCP 功能开关。
FEATURE_AT_UART_RECV_IRQ
ON/OFF
AT 模组中断接受功能开关。
FEATURE_AT_OS_USED
ON/OFF
AT 模组多线程功能开关。
FEATURE_AT_DEBUG
ON/OFF
AT 模组调试功能开关。
FEATURE_MULTITHREAD_TEST_ENABLED
ON/OFF
是否编译 Linux 多线程测试例程。
配置选项之间存在依赖关系,当依赖选项的值为有效值时,部分配置选项才有效,主要如下:
名称
依赖选项
有效值
FEATURE_MQTT_DEVICE_SHADOW
FEATURE_MQTT_COMM_ENABLED
ON
FEATURE_GATEWAY_ENABLED
FEATURE_MQTT_COMM_ENABLED
ON
FEATURE_OTA_SIGNAL_CHANNEL(MQTT)
FEATURE_OTA_COMM_ENABLED
FEATURE_MQTT_COMM_ENABLED
ON
ON
FEATURE_OTA_SIGNAL_CHANNEL(COAP)
FEATURE_OTA_COMM_ENABLED
FEATURE_COAP_COMM_ENABLED
ON
ON
FEATURE_AUTH_WITH_NOTLS
FEATURE_AUTH_MODE
KEY
FEATURE_AT_UART_RECV_IRQ
FEATURE_AT_TCP_ENABLED
ON
FEATURE_AT_OS_USED
FEATURE_AT_TCP_ENABLED
ON
FEATURE_AT_DEBUG
FEATURE_AT_TCP_ENABLED
ON

设备信息选项

在腾讯云物联控制台创建设备之后,需要将设备信息(ProductID/DeviceName/DeviceSecret/Cert/Key 文件)配置在 SDK 中才能正确运行。在开发阶段,SDK 提供两种方式存储设备信息:
存放在代码中(编译选项 DEBUG_DEV_INFO_USED = ON),则在platform/os/xxx/HAL_Device_xxx.c中修改设备信息,在无文件系统的平台下可以使用这种方式。
存放在配置文件中(编译选项 DEBUG_DEV_INFO_USED = OFF),则在device_info.json文件修改设备信息,此方式下更改设备信息不需重新编译 SDK,在 Linux/Windows 平台下开发推荐使用这种方式。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈