【发布时间】:2012-01-05 20:23:22
【问题描述】:
我正在使用一个库,不幸的是,开发人员似乎不再处理或回复他的 Git 存储库中的问题。该库用于驱动HT1632C LED 矩阵驱动器,虽然它在 0022/0023 中工作,但在 Arduino 1.0 中不起作用。编译时,我的Sketch 给出以下错误:
In file included from Final_code__1_0compatible.cpp:7:
C:\arduino-1.0\libraries\ht1632c/ht1632c.h:182: error: conflicting return type specified for 'virtual void ht1632c::write(uint8_t)'
C:\arduino-1.0\hardware\arduino\cores\arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'
引用此站点:http://arduino.cc/forum/index.php?topic=82450.0,我发现有人与我有相同的编译错误(但使用另一个库)的评论。看起来他们的解决方法是用“size_t”替换一些东西
第 200 行:size_t write(uint8_t); //更改为解决与 print.h 的冲突
库的 .h 和 .cpp 文件中的冲突行看起来是:
.h:
void write(uint8_t chr);
.cpp:
void ht1632c::write(uint8_t chr)
{
byte x, y;
if (chr == '\n') {
//y_cur += font_height;
} else {
//x_cur += putchar(x_cur, y_cur, chr, GREEN, PROPORTIONAL);
//x_cur = 0;
//y_cur = 0;
}
//sendframe();
}
我不是 C/C++ 专家,但我是否正确,如果我将 .h 更改为 "size_t write(uint8_t chr)" 并将 .cpp 更改为 "size_t ht1632c::write(uint8_t chr)" 这行得通吗?
我试过这样做,它可以编译,但我不知道是用“size_t”替换单词“void”,还是需要用“size_t”替换“uint8_t”。
【问题讨论】:
标签: c++ c arduino microcontroller