使用 Arduino 库与 C++ 的 stringstream 链接错误

2023-12-11

我正在使用一个esp8266和...一起平台写一个简单的草图。

#include <sstream>
#include <Arduino.h>

std::stringstream s;

void setup()
{
    Serial.begin(9600);
    Serial.println("Test");
}

void loop()
{

}

一切都应该正确设置,并且大多数草图都可以正常工作。 但是,当我尝试使用 stringstreams 时,platformio 链接固件时就会出现错误。

platformio run
[12/29/16 12:11:32] Processing esp12e (platform: espressif8266, board: nodemcu, framework: arduino)

Verbose mode can be enabled via `-v, --verbose` option
Collected 23 compatible libraries
Looking for dependencies...
Project does not have dependencies
Linking .pioenvs\esp12e\firmware.elf

c:/users/simon/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pioenvs\esp12e\firmware.elf section `.text' will not fit in region `iram1_0_seg'
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o):(.literal._ZSt16__convert_from_vRKPiPciPKcz[_ZSt16__convert_from_vRKPiPciPKcz]+0x4): undefined reference to `setlo
cale'
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o):(.literal._ZSt16__convert_from_vRKPiPciPKcz[_ZSt16__convert_from_vRKPiPciPKcz]+0xc): undefined reference to `vspri
ntf'
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o):(.literal._ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale[_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale]+0x4): undefined r
eference to `std::__throw_bad_cast()'
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o):(.literal._ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_
[_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_]+0x0): undefined reference to `memchr'
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o): In function `std::__convert_from_v(int* const&, char*, int, char const*, ...)':
/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libstdc++-v3/include/bits/locale_classes.tcc:114: undefined reference to `setlocale'
/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libstdc++-v3/include/bits/locale_classes.tcc:114: undefined reference to `setlocale'
/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libstdc++-v3/include/bits/locale_classes.tcc:114: undefined reference to `vsprintf'
/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libstdc++-v3/include/bits/locale_classes.tcc:114: undefined reference to `setlocale'
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o): In function `std::ctype<char> const& std::use_facet<std::ctype<char> >(std::locale const&)':
/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libstdc++-v3/include/bits/locale_classes.tcc:114: undefined reference to `std::__throw_bad_cast()'
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o): In function `std::numpunct<char> const& std::use_facet<std::numpunct<char> >(std::locale const&)':
/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libstdc++-v3/include/bits/locale_classes.tcc:114: undefined reference to `std::__throw_bad_cast()'
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o): In function `std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > const& std::use_facet<s
td::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > >(std::locale const&)':
/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libstdc++-v3/include/bits/locale_classes.tcc:114: undefined reference to `std::__throw_bad_cast()'
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o): In function `std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > const& std::use_facet<s
td::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > >(std::locale const&)':
/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libstdc++-v3/include/bits/locale_classes.tcc:114: undefined reference to `std::__throw_bad_cast()'
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o): In function `std::moneypunct<char, true> const& std::use_facet<std::moneypunct<char, true> >(std::locale const&)'
:
/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libstdc++-v3/include/bits/locale_classes.tcc:114: undefined reference to `std::__throw_bad_cast()'
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o):/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libst
dc++-v3/include/bits/locale_classes.tcc:114: more undefined references to `std::__throw_bad_cast()' follow
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o): In function `std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<
char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const':
/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libstdc++-v3/include/bits/locale_classes.tcc:114: undefined reference to `memchr'
C:\users\simon\.platformio\packages\framework-arduinoespressif8266\tools\sdk\lib\libstdc++.a(locale-inst.o): In function `std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put

A lot more similar errors

----------

collect2.exe: error: ld returned 1 exit status
*** [.pioenvs\esp12e\firmware.elf] Error 1
 [ERROR] Took 8.38 seconds

我很新平台并对 esp 进行编程,但也许你们中的一些人遇到了类似的问题或从控制台日志中获得了线索。你能帮我修复这些错误吗?


据我所知,你不能easily包括sstream在您的项目或大多数其他 C++ 库中。

Arduino有他自己的图书馆,我建议你仔细看看String文档,因为它可能已经提供了您项目中所需的功能。

有一些 C++ 库移植用于Arduino,包括一个字符串流端口那个——理论上来说——你可以使用。

还有portsC 库,但老实说我不知道​​这些库的先进性/可靠性状况如何。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Arduino 库与 C++ 的 stringstream 链接错误 的相关文章

  • Mono mkbundle 工具无法创建二进制文件,并抱怨输出文件不可用

    根据来自的建议这个线程 https stackoverflow com questions 551554 can you compile c without using the net framework在运行没有 NET 的 C 应用程序
  • Visual Studio Code clang 错误:Mac 上的链接器命令失败,退出代码 1

    我是编程新手 想尝试使用 VS Code 进行 C 开发 我收到此错误 但无法在线找到解决方案 clang 错误 链接器命令失败 退出代码为 1 使用 v 查看调用 终端进程终止并退出代码 1 我得到了一个包含函数定义的 cpp 文件和一个
  • 与 libbluetooth.so 链接

    在 Ubuntu 14 04 上 我尝试做一个蓝牙设备列表的小示例 但在编译这个简约演示时 我遇到了一个关于与蓝牙共享库链接的简单问题http people csail mit edu albert bluez intro c404 htm
  • Arduino 上的 Serial 和 Stream 有什么区别,Serial.write 是如何实现的?

    我很难理解串行和流这两个术语之间的区别 串行不是流的一种吗 我对作业有一些我不明白的问题 计算机通过使用 流或串行 读取 彼此发送的数据来确定每个字节的含义 Also Serial write 我也很困惑 它返回一个字节的数据 对吗 一个字
  • 在 x86_64 linux 中重定位超过 2GB 的程序时出现链接器错误?

    我有一个用户程序 通常编译为有一个入口点0x400460我必须重新定位才能有一个从以下位置开始的入口点2GBLinux 中加载的共享库 例如 linux vdso so 1 gt 0x00007fff109cd000 libc so 6 g
  • 将浮点数转换为字节数组的 C 函数

    我正在尝试创建一个函数来接受浮点变量并将其转换为字节数组 我找到了一段有效的代码片段 但如果可能的话 希望在函数中重用它 我也在使用 Arduino 环境 但我知道它接受大多数 C 语言 目前工作 float variable 1 11 b
  • 为什么 LD_PRELOAD 似乎不适用于 wc 写入

    我正在使用 LD PRELOAD 来拦截 libc 调用 看起来 write 调用不会被 wc 拦截 尽管它似乎确实可以与 cat 一起使用 下面显示了该问题的精简版本 红帽 Linux 2 6 9 42 ELsmp Makefile wr
  • 如何调试 STL/C++ 的 GCC/LD 链接过程

    我正在用 C 开发裸机 cortex M3 以获取乐趣和利润 我使用 STL 库 因为我需要一些容器 我认为通过简单地提供我的分配器 它不会向最终的二进制文件添加太多代码 因为您只得到您使用的内容 实际上我根本没想到与 STL 有任何链接过
  • C 链接错误:未定义对“main”的引用

    我试图将多个 C 程序链接在一起 但收到错误响应 gcc o runexp o scd o data proc o lm fopenmp usr lib gcc x86 64 linux gnu 4 6 x86 64 linux gnu c
  • C++ 内联字符串流

    我想用std stringstream创建格式化字符串 但使用内联类 所以我没有stringstream局部变量到处乱飞 我的意思是这样的 include
  • 无法解析的外部符号 _DEVPKEY_Device_BusReportedDeviceDesc

    对于连接到我的机器的设备 我想检索设备属性总线报告设备描述 为此我使用函数设置DiGetDeviceProperty https msdn microsoft com library windows hardware ff551963 of
  • 如何在 Windows 上获取 Arduino 草图的汇编语言列表?

    我希望能够看到我的 Arduino 草图的汇编语言列表 我怎样才能实现这个目标 Update 我正在 Windows 机器上运行 Arduino 软件 一种方法是使用avr objdump on the elf构建创建的文件 例如 在 OS
  • 如何将自定义目标文件与 Haskell 库链接?

    我创建了一个 Haskell 包 它对 CUDA 代码中定义的函数进行 FFI 调用 我想在包构建期间将 cu 文件编译为对象 o 文件 并强制链接器将其链接 到目前为止 我尝试使用一种发现的技术这个问题 https stackoverfl
  • 是否可以在 Arduino 上运行 ZeroMQ

    我想知道是否可以通过 ZeroMQ 与 Arduino 进行通信 我想使用 Arduino 来控制一些设备 并希望将大部分应用程序放在计算机上 为此 如果 Arduino 和控制器可以通过 Zeromq 以及 WiFi 或以太网扩展板进行通
  • 带有#pragma comment(lib)的相对路径

    使用 Visual Studio 2010 我想在 pragma comment lib 中指定相对于包含它的 cpp 文件的路径 I tried pragma comment lib FILE foo lib 在 foo cpp 和它中s
  • 从 iBeacon 接收 BLE 信号到 Bluno(arduino with BLE)

    我想从 iBeacon 到 Bluno 接收 rssi 信号和 UUID Arduino 板具有 BLE 对此有一些疑问 有没有从 BLE 到 BLE 接收 UUID 和 rssi 的解决方案 两个BLE设备可以互相通信吗 我想找一些网站来
  • 解决源自 .lib 文件的“本地定义的符号”和“未解析的外部符号”

    我正在尝试在 Windows 7 64 位上的 Visual C 2010 上使用开源库 GDCM 编译我的项目 我已在我的项目中包含了所需的 lib 文件 gdcmDSED lib 和 gdcmMSFF lib 但是 编译器抱怨超过 10
  • ns_initparse 的链接器错误

    这是代码 include
  • Python串口通信

    我正在开发一个 Arduino 项目 由于内存限制 我将其与 Python 脚本连接起来 在Python方面 我有一个二维矩阵 其中包含各自的x y坐标值 并且在此列表中有26000个坐标对 因此 为了向大家澄清数据结构 pathlist
  • Xcode -- 让force_load 使用相对路径

    某些库在链接到 Xcode 项目时需要 all load 链接器标志 但是 如果库之间存在符号冲突 这会导致链接器错误 解决方案是使用 force load 它可以有效地让您在某些库上使用 all load 但不能在其他库上使用 然而 这反

随机推荐

  • HttpSessionListener.sessionCreated() 未被调用

    我有一个非常简单的 Servlet 和一个非常简单的 HttpSessionListener WebServlet HelloWorld public class HelloWorld extends HttpServlet private
  • 了解 Scala 中的柯里化

    我在理解柯里化概念或至少是 SCALA 柯里化符号时遇到了问题 维基百科说柯里化是一种将带有多个参数的函数的求值转换为求值一系列函数的技术 每个函数都有一个参数 按照这个解释 接下来的两行对于 scala 来说是一样的吗 def addCu
  • 多图片上传

    我正在制作画廊网站 并且想仅使用 PHP 和 MYSQLI 创建一个多图像上传器 我不太擅长编码 因此该网站上的多图像上传的其他示例对我不起作用 这是根据当前用户会话将数据发送到数据库的工作代码 html
  • 使用准备好的语句从 SQL 表中选择 *

    我正在使用准备好的声明SELECT 来自 MySQL 表 我不知道如何使用while row mysqli fetch array stmt 循环并从结果数组中选择项目 这是我的代码 我做错了什么 link mysqli connect h
  • 在php中捕获搜索引擎关键字

    在 awstats 中 我得到了一个表格 其中包含用于查找我的网站的所有关键词和短语 我想自己捕获这一点 但是每个搜索引擎网址的格式都不同 当 google 是引用者时 我可以使用查询字符串中的变量 q 作为搜索词 例如 google co
  • 美国国旗排序优化

    我正在尝试实现美式桶排序 维基百科说 首先计算每个垃圾箱中掉落的物体数量 然后将每个物体放入其桶中 第二阶段 将对象放入适当的桶中时 是否需要使用辅助数组 有没有办法通过在线性时间内交换数组元素来做到这一点 假设你的意思是http en w
  • 将 pygame 表面转换为图像?

    有没有办法将 pygame 表面转换为 png 图像 rgb content pygame surfarray array2d canvas cv2 imwrite file rgb content cv2 IMWRITE PNG COMP
  • 如何以标准/可移植且高效的方式编写int64=int32*int32? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 有关的 int64 t 的这种处理是 GCC AND Clang 错误吗 我能想到的唯一解决方案是将操作数之一显式转换为int64 迫使产品也至少int64 但如果这样做的话 那么就取
  • 如何将两个 geoJSON 要素集合添加到两个图层组中

    我有两个 geoJSON 要素集合需要添加到地图中 并且我还希望通过图层可见性控制器打开和关闭它们 如下所示http leafletjs com examples layers control html 我怎样才能做到这一点 还有一个非常好
  • 如何批量添加过滤器到文件选择器?

    我正在使用此代码来创建带有批处理的文件选择器Windows 批处理脚本中的文件 文件夹选择器对话框 echo off set dialog about
  • 我应该使用泛型来简化我的 DAL 吗?

    我是 NHibernate 的新手 不太擅长 C 但我正在学习 我有一个DataProvider类 它使用 NHibernate 3 为我的应用程序提供数据 它的结构几乎与Steve Bohlen 的 NHibernate 之夏视频 我注意
  • 数组变量是否指向自身?

    我尝试了一些代码来检查数组和指针的行为 其情况如下 include
  • 格式方法和舍入数

    我不明白格式和舍入数字是如何工作的 因为例如 0f format 234 50 returns 234 0f format 235 50 returns 236 0f format 236 50 returns 236 0f format
  • Python:动态区间数据结构[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在寻找一些 python 代码来有效计算间隔重叠 我之前使用过 bx python 包的间隔树 但现在需要从树中删除间隔 或者更好的是 修改它们 看来 bx python 树
  • Python:替换列表列表中的项目

    这是我的代码 data 5 3 0 0 7 0 0 0 0 6 0 0 1 9 5 0 0 0 0 9 8 0 0 0 0 6 0 8 0 0 0 6 0 0 0 3 4 0 0 8 0 3 0 0 1 7 0 0 0 2 0 0 0 6
  • 使用 c# 将字符串分成对

    有没有一种方法可以在不查看索引的情况下将字符串分成对 例如 TVBMCVTVFGTVTB 将被分解为字符串列表 如下所示 电视 BM CV 电视 FG 电视 TB 也许我应该用问题的措辞来说明它们在使用字符串将它们分成组时类似于 strin
  • 我将如何创建 JFreeChart 散点图最佳拟合线

    我有一个要包含在 JFreeChart 散点图中的点数组列表 效果很好 但我现在想要一条最适合的线 经过一番查找 JFreeChart不直接支持这样的计算 所以我想做的是自己计算一下 然后手动在图表中贴一条线 如何在散点图中得到一条线 XY
  • 如何限制泛型类中允许作为“T”的类型?

    我有课Foo
  • Laravel 种子问题,laravel 正在寻找复数表名

    我刚刚开始学习 Laravel 在为测试表生成种子时遇到问题 控制台错误说 未找到基表或视图 1146 表 laravel testms 不存在 我的表名为 testm 我不知道它为什么寻找 testms TestmFactory php
  • 使用 Arduino 库与 C++ 的 stringstream 链接错误

    我正在使用一个esp8266和 一起平台写一个简单的草图 include