代码拉取完成,页面将自动刷新
本示例使用C语言开发,需要在树莓派上安装Azure IoT C SDK以及相关的库。
sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev ca-certificates
确保cmake
使用2.8.12及以上版本:
cmake --version
确保gcc
使用4.4.7及以上版本:
gcc --version
从 https://github.com/Azure/azure-iot-sdk-c/releases 获取所需安装版本的release tag,然后,将代码克隆到本地,并初始化git submodule:
git clone -b <lts_mm_yyyy> https://github.com/Azure/azure-iot-sdk-c.git
cd azure-iot-sdk-c
git submodule update --init
<lts_mm_yyyy>
为需要使用的代码分支的名称,跟release tag一般是匹配的,只不过分支名称是小写的。
使用下面的命令编译Azure IoT C SDK:
cd azure-iot-sdk-c
mkdir cmake
cd cmake
cmake ..
cmake --build . # append '-- -j <n>' to run <n> jobs in parallel
编译成功后,进入cmake
目录,然后安装依赖库:
sudo make install
对vim
比较熟悉的话,可以直接在树莓派中编辑源代码文件。也可以选择在Windows、Mac或者Linux下,使用Visual Studio Code,通过SSH远程访问的方式连接到树莓派,进行代码编译和调试。
建议在Visual Studio Code中安装微软官方的C/C++ Extension Pack
插件。这里分享一个简单的tasks.json
和launch.json
,用于基于GDB的C语言调试配置。
tasks.json
{
"tasks": [
{
"type": "cppbuild",
"label": "Build",
"command": "/usr/bin/gcc",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"${fileDirname}/rpi_message.c",
"-o",
"${fileBasenameNoExtension}",
"-liothub_client",
"-liothub_client_mqtt_transport",
"-lumqtt",
"-lprov_device_client",
"-lprov_auth_client",
"-lhsm_security_client",
"-lutpm",
"-laziotsharedutil",
"-lpthread",
"-lcurl",
"-lssl",
"-lcrypto",
"-lm",
"-lparson",
"-lprov_mqtt_transport"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"preLaunchTask": "Build",
"program": "${fileDirname}/main",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}
如果希望在命令行进行编译,可以直接执行build.sh
脚本。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。