【发布时间】:2013-08-19 11:46:27
【问题描述】:
我是 C++ 新手,但不会编程,最近开始为 AVR 微控制器编写库。我的库的头文件(Codex.h)看起来像这样..
#ifndef Codex_h
#define Codex_h
#include "Arduino.h"
#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
class Codex
{
public:
void hostIP(int a ,int b ,int c,int d);
void start(String ID);
void digitalReadOSC();
void analogReadOSC();
void digitalRead();
void analogRead();
void receive();
private:
EthernetUDP _Udp;
int _pin,_a,_b;
int _sensorData[52];
String _nID,_sID,_pID,_snID,_lID,_payloadlen,_payload,_packet;
char _packetBuffer[25];
IPAddress _coreIP(000,000,0,00);
};
#endif
现在我再说一遍,我是 C++ 新手,所以我认为我犯了一个简单的错误,但我的编译器在 IPAddress 类型和处理 EthernetUDP 实例创建方面存在问题。 IPAddress 是一个来自 Ethernet.h 库的函数。当我尝试将我的库包含在项目中时,这是我的编译器吐出的内容。
In file included from sketch_aug17b.ino:1:
C:\Program Files (x86)\Arduino\libraries\Codex/Codex.h:19: error: 'EthernetUDP'
does not name a type
C:\Program Files (x86)\Arduino\libraries\Codex/Codex.h:24: error: 'IPAddress'
does not name a type
提前感谢您提供的任何帮助,即使只是告诉我去读一本 C++ 书 :)。
【问题讨论】:
-
你检查过拼写吗?
EthernetUdp也许,基于文件名?也许 IpAddress 有预感... -
你检查它们是否在命名空间内?
-
@Reuben 为什么将头文件保存在标准目录中?将用户头文件保留在 Program Files 路径中有点不寻常。它会混淆错误是来自标准标题还是您自己的。
-
错误明显来自我的头文件,我看不出我的头文件在(/ Program Files)中会增加错误起源的任何歧义。包含的头文件是 arduino IDE 的标准文件。
-
@JonathanLeffler 很擅长,但header 似乎确实是
EthernetUDP。 (顺便说一句,这也是我的第一个猜测)。
标签: c++ function header include