我正在使用 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 文件中也有一个 get 方法,所以我真的不明白为什么我在这里遇到问题。HTTPText.cpp/.h 文件data
位于HTTPClient
. 如果我知道第一个问题的原因,我认为第二个问题可能会解决。
在编码窗口中,当它告诉您函数在哪里时,它指向正确的位置,所以我不认为这是存在两个不同类或其他东西的情况。
似乎没有其他人遇到过这个问题,所以我假设这很可能是由于我已经/没有做过的事情。也许这是由于 mbed 开发人员环境处理事情的方式。我对系统比较陌生,所以仍在弄清楚。
作为一个额外的说明,如果出于某种惊人的原因它会有所不同,我必须在程序文件夹中包含库 EthernetInterface 和 mbed-rtos 因为其他库之一似乎需要特定版本的 TCPSocketConnection 和一些 lwip 东西.
我做了什么傻事吗?这似乎适用于在线示例中没有提出任何问题的其他人。任何帮助表示赞赏。