同样一份代码 在另一个arduino软件编译不通过-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 636|回复: 5

[未解决] 同样一份代码 在另一个arduino软件编译不通过

[复制链接]
发表于 2022-2-2 22:22 | 显示全部楼层 |阅读模式
如题,本人之前的电脑是windows10系统的游戏本,后面有了台华为matebook e  2022,win11系统,于是把之前写的一份esp32的代码copy到新电脑,用matebook e编译发现不通过(旧电脑正常编译)。两台电脑的IDE的版本是一致的都是1.8.19。如图,找了很久原因没找出问题,求助各位大佬。
微信图片_20220202221624.png
微信图片_20220202221519.png
3.png
发表于 2022-2-2 22:32 | 显示全部楼层
esptool可以使用吗?不能的话,就需要安装Visual Studio 2022  c++库,新的电脑会遇到这种情况。还要注意配置python的环境变量。此外, arduino-esp32 sdk 的最新版本是2.0.2 ,ArduinoJson的版本是6.19.1,更新一下,程序相应做一下调整。还是用安装版的Arduino IDE吧。
 楼主| 发表于 2022-2-2 22:36 | 显示全部楼层
下面是其中一个相关报错代码,主要是Serial.printf("modif_request_city-end-变更请求天气信息的城市为:%s\n",this->request_city_str);这一句会报错,其他几个报错也是类似的结构。


class weather
{
  public:
    String request_city_str;   
    const char *request_city;           //要查询的城市         
    const char *last_update;            //服务端上一次的更新时间 eg:"2021-12-09T08:00:00+08:00"
    DAILY_INFO daily_info_1;            //今天天气
    DAILY_INFO daily_info_2;            //明天天气
    DAILY_INFO daily_info_3;            //后天天气
    LOACTION_INFO location_info;        //城市信息
    void get_weather_info(void);        //获取天气信息
    void modif_request_city(String);    //变更要查询的城市
  private:
    bool is_inited;                                       //是否加载过要查询的城市
    void set_daily_weather_info(JsonObject,DAILY_INFO *); //加载每日天气信息
    void set_location_info(JsonObject,LOACTION_INFO *);   //加载城市信息
};

void weather::modif_request_city(String new_city_name)
{
  Serial.println("modif_request_city-start-变更请求天气信息的城市...");
  //内存变更
  this->request_city_str = new_city_name;   
  this->request_city = new_city_name.c_str();  //要查询的城市      
  //存储空间变更
  Preferences prefs;
  prefs.begin(WEATHER_INFO_SPACE);
  prefs.putString(REQUEST_CITY, this->request_city);
  prefs.end();

  this->is_inited=true;
  Serial.printf("modif_request_city-end-变更请求天气信息的城市为:%s\n",this->request_city_str);
}
 楼主| 发表于 2022-2-2 22:50 | 显示全部楼层
topdog 发表于 2022-2-2 22:32
esptool可以使用吗?不能的话,就需要安装Visual Studio 2022  c++库,新的电脑会遇到这种情况。还要注意配 ...

感谢大佬回复,我目前用的是windows store下载的Arduino IDE, 用其自带的esp32蓝牙例程编译是正常的,应该表明esptool可以使用吧,这个还需配置python环境变量吗,虽然感觉不像是这个原因。
发表于 2022-2-2 23:15 | 显示全部楼层
本帖最后由 topdog 于 2022-2-2 23:22 编辑
GUTONGXUE 发表于 2022-2-2 22:50
感谢大佬回复,我目前用的是windows store下载的Arduino IDE, 用其自带的esp32蓝牙例程编译是正常的,应 ...

你参考一下我写的 https://www.arduino.cn/thread-105763-1-1.html 里面有ArduinoJosn的使用小技巧。SigmaDelta各个版本也不一样的。我之前也用windows store下载的Arduino IDE,现在改用安装版了。
发表于 2022-2-3 12:28 | 显示全部楼层
相关依赖库版本也需要一致才行
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 16:02 , Processed in 0.154056 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表