【问题标题】:error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token错误:在 ':' 标记之前应有 '='、','、';'、'asm' 或 '__attribute__'
【发布时间】:2012-11-13 08:50:51
【问题描述】:

当我将此代码上传到 Arduino Atmega2560 时发生错误。这是我为程序中的 .c 文件创建的库文件。

错误是:
herkulex.c:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

出现错误时“class”这个词高亮显示,在文件中(代码如下)

#ifndef herkulex_lib
#define herkulex_lib

#include <Arduino.h>
#include <Wire.h> 
#include<inttypes.h> 

class herkulex
{
  public: 
    herkulex();
    void hklx_Init(unsigned long ulBaudRate);
    void hklx_SendPacket(DrsPacket stPacket);
    unsigned char hklx_ucReceivePacket(DrsPacket *pstPacket);
    void hklx_RemoveInvalidData(void);

//no private  
};

#endif /* HERKULEX_H_ */

我可以知道这段代码有什么问题吗?谢谢!

【问题讨论】:

  • 将 .cc 文件添加到 arduino 时出现问题。上述文件已转换为 .cc 文件,但是当我尝试将文件添加到 arduino 时,它没有在选项卡中显示它们,我认为 c++ 文件没有添加到 arduino 中。为什么会这样?

标签: c++ c class arduino


【解决方案1】:

您正在编译一个包含 C++ 的 C 文件。 C 编译器拒绝 C++ 语法。

将其编译为 C++ 程序。

【讨论】:

  • 我可以知道如何将此文件转换为 c++ 吗?
  • @shannon 通常,您只需将扩展名更改为cpp。根据您的构建设置方式,这可能无法正常工作。试试看。
  • 首先,将文件重命名为 cpp。然后在 IDE/Compiler 中查找 C++ 标志。
  • 在哪里可以找到 IDE/编译器?是来自 Arduino 还是 Visual c++ 程序?
  • @shannon 我认为 Arduino IDE 会自动完成,只需重命名文件,使用 CPP 扩展名再次打开它,就可以了
【解决方案2】:

这里是不是少了一个space:?

#include<inttypes.h> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多