我使用mbed LPC1768,虽然问题与硬件无关。我正在尝试使用下面的标准示例来测试LPC1768上的HTTP客户端。我在示例中没有任何改变(我在网上看到它但最初在"快速有效的嵌入式系统设计"书中找到)。
#include "mbed.h"
#include "EthernetNetIf.h"
#include "HTTPClient.h"
EthernetNetIf eth(
IpAddr(192,168,0,101),
IpAddr(255,255,255,0),
IpAddr(192,168,0,1),
IpAddr(192,168,0,1)
);
HTTPClient http;
HTTPText txt;
Serial pc (USBTX, USBRX);
int main() {
pc.printf("\r\nSetting up network connection...\n\r");
eth.setup();
pc.printf("\n\nSetup OK. Querying data...\r\n");
// attempt to access file 'mbedclienttest.txt' through the Internet...
HTTPResult r=http.get("http://www/embeddedacademic.com/mbed/mbedcllienttest.txt", &txt);
pc.printf("Result: \n\r\"%s\"\n\r", txt.gets());
}
这一切似乎都非常简单,但我一直都会遇到这些错误:
Error: No default constructor exists for class "HTTPText" in "main.cpp", Line: 13, Col: 11
Error: Class "HTTPText" has no member "gets" in "main.cpp", Line: 24, Col: 46
我不知道为什么。我的意思是,我理解错误,但构造函数存在于HTTPText中,并且HTTPText文件中也有一个gets方法,所以我真的不明白为什么我在这里遇到问题。 HTTPText.cpp / .h文件位于data
中的HTTPClient
目录中。如果我知道第一个问题是什么原因,我认为第二个问题可能就好了。
在编码窗口中,当它告诉你功能在哪里时,它指向正确的位置,所以我不认为这是两个不同的类或什么的情况。
似乎没有其他人遇到过这个问题,所以我假设这很可能是因为我已经完成了某些事情。也许这是由于mbed开发人员环境处理事情的方式。我对这个系统比较新,所以我还在搞清楚。
作为一个额外的注释,如果由于一些惊人的原因它会产生影响,我必须在程序文件夹中包含库EthernetInterface和mbed-rtos,因为其他库之一似乎需要特定版本的TCPSocketConnection和一些lwip的东西。
我做过傻事吗?这似乎适用于在线示例中没有问题的其他人。任何帮助表示赞赏。