mbed HTTPText - 不存在默认构造函数

时间:2015-07-23 18:06:28

标签: c++ compiler-errors mbed

我使用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的东西。

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

0 个答案:

没有答案