gpt4 book ai didi

c++ - PlatformIO 的范围问题(?)

转载 作者:行者123 更新时间:2023-11-28 05:08:37 27 4
gpt4 key购买 nike

我一直在寻找其他开发平台来处理基于 Atmel (Arduino/ATTiny) 和 Espressif (ESP8266) 的设备。最近,我安装了 PlatformIO。但是我在似乎是对全局范围的认可方面遇到了麻烦。不确定...

我有一个头文件,其中包含配置结构的 typedef:

typedef struct {
char idPrefix[8];
char defPass[16];
char targetSSID[32];
char targetPass[64];
uint8_t beepInRange;
uint8_t beepOutofRange;
} devConfig;

我想在我的 ino 文件中分配一个配置变量:

devConfig myConfig;

但是当我尝试在我的设置或循环中访问它时,例如:

void setup() {
strncpy(myConfig.defPass, "somepass", 16);
}

当我尝试平台运行时,它吐出“错误:‘myConfig’未在此范围内声明”

这个东西是不是和arduino一样不支持全局变量?我究竟做错了什么?感谢您的帮助。

最佳答案

我想你一定忘记了在主代码中添加#include "Arduino.h" 头文件。另外,请注意 Platform IO 编译的是 cpp 文件而不是 ino 文件。

main.cpp

// Without Arduino.h this code will not compile
#include "Arduino.h"
#include "demo.h"

devConfig myConfig;

void setup() {
strncpy(myConfig.defPass, "somepass", 16);
}

void loop() {

}

演示.h

typedef struct {
char idPrefix[8];
char defPass[16];
char targetSSID[32];
char targetPass[64];
uint8_t beepInRange;
uint8_t beepOutofRange;
} devConfig;

关于c++ - PlatformIO 的范围问题(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44004422/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com