0

我正在使用 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 东西.

我做了什么傻事吗?这似乎适用于在线示例中没有提出任何问题的其他人。任何帮助表示赞赏。

4

0 回答 0