1

我正在尝试制作简单的网络服务器,所以如果我在浏览器上搜索并输入设备的 ip,我会看到一个网页。我找到了这个维基页面

我已按照步骤操作,但在构建时出现错误。

我已包含链接文件夹"C:\stellarisware\third_party\lwip-1.3.2\apps\httpserver_raw"以获取 httpd.c 等文件

我添加了httpd_init(),但在构建时出现此错误。

   [cc] C:\stellarisware\third_party\lwip-1.3.2\apps\httpserver_raw\fsdata.c:328:26: error: array type has incomplete element type
   [cc] C:\stellarisware\third_party\lwip-1.3.2\apps\httpserver_raw\fsdata.c:330:26: error: array type has incomplete element type
   [cc] C:\stellarisware\third_party\lwip-1.3.2\apps\httpserver_raw\fsdata.c:332:26: error: array type has incomplete element type 

如果我查看这些文件,它就在其中:

const struct fsdata_file file_img_sics_gif[] = {{NULL, data_img_sics_gif, data_img_sics_gif + 14, sizeof(data_img_sics_gif) - 14}};

const struct fsdata_file file_404_html[] = {{file_img_sics_gif, data_404_html, data_404_html + 10, sizeof(data_404_html) - 10}};

const struct fsdata_file file_index_html[] = {{file_404_html, data_index_html, data_index_html + 12, sizeof(data_index_html) - 12}};

这就是我的目录的样子:

在此处输入图像描述

以下是来自网络服务器的源文件:下载

这是我的 main.c,在第 270 行我调用了 httpd_init(); 下载

4

1 回答 1

2

您需要fsdata.c从构建中排除:右键单击文件 -> 资源配置 -> 从构建中排除 -> 全选。

该文件是自动生成的,并且在IIRC中有一个#include "fsdata.c"声明。fs.c在这种.c情况下,扩展名有点误导 - 它是一个C源文件,但不能单独编译,只能作为具有所有定义和#include行的另一个文件的一部分。

于 2013-01-08T09:46:48.897 回答