веб-сервер с lwip (Cortex M3, оценочная плата Stellaris LM3S6965)

Я пытаюсь создать простой веб-сервер, поэтому, если я выполню поиск в своем браузере и введу 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(); Загрузить


person Sharpless512    schedule 07.01.2013    source источник
comment
Вам нужно показать больше кода и, возможно, также makefile или что-то еще, что вы создаете. Тем не менее, он слишком велик / специфичен, чтобы на него можно было ответить.   -  person unwind    schedule 07.01.2013
comment
Я отредактировал его, но я также думаю, что makefile генерирует файл для отображения. Но где я могу изменить, чтобы он отображал html-страницу, что я ввожу.   -  person Sharpless512    schedule 07.01.2013
comment
Компилятор сообщает вам, что он не знает, как выглядят struct, поскольку их определение не видно в той точке кода, где находятся ваши массивы. Вероятно, вам нужно #include больше вещей.   -  person Spudd86    schedule 08.01.2013


Ответы (1)


Вам нужно исключить fsdata.c из сборки: Щелкните правой кнопкой мыши файл -> Конфигурации ресурсов -> Исключить из сборки -> Выбрать все.

Этот файл создается автоматически, и в fs.c IIRC есть оператор #include "fsdata.c". Расширение .c в данном случае немного вводит в заблуждение - это исходный файл C, но он не может быть скомпилирован отдельно, только как часть другого файла, содержащего все определения и #include строк.

person Turbo J    schedule 08.01.2013