2013-01-07 6 views
1

브라우저를 검색하고 장치의 IP를 입력하면 간단한 웹 서버를 만들려고합니다. 웹 페이지가 표시됩니다. 내가 찾은 this 위키 페이지웹 서버 lwip (Cortex M3, 스텔라리스 LM3S6965 평가 보드)

나는 그 단계를 밟았지만, 나는 건물에있는 동안 오류가있다. 내가 가진

는 httpd.c를 얻을 수있는 링크 폴더 "C:\stellarisware\third_party\lwip-1.3.2\apps\httpserver_raw" 등 내가 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}}; 

내 디렉토리가 같이하는 방법이 있습니다 : 여기 enter image description here

가에서 소스 파일입니다 웹 서버 : download

그리고 여기 내 main.c, 라인 270에서 나는 httpd_init()를 호출했다. Download

+0

더 많은 코드와 메이크 파일을 보여줄 필요가 있습니다. 그래도 여기에 답하기에는 너무 크거나 구체적인 경계선입니다. – unwind

+0

나는 그것을 편집했지만 또한 메이크 파일이 표시 할 파일을 생성한다고 생각한다. 하지만 어디에서 변경할 수 있도록 내가 입력 한 HTML 페이지가 표시됩니다. – Sharpless512

+1

컴파일러는 배열이있는 코드의 지점에서 해당 정의가 보이지 않기 때문에'struct'가 어떻게 보이는지 알지 못한다고 알려줍니다. 아마도 더 많은 것들을'#include '할 필요가있을 것이다. – Spudd86

답변

2

빌드에서 fsdata.c을 제외해야합니다. 파일 -> 자원 구성 -> 빌드에서 제외 -> 모두 선택을 누르십시오.

이 파일은 자동으로 생성되며 fs.c IIRC에는 #include "fsdata.c" 문이 있습니다. 이 경우에는 .c 확장자가 약간의 오해의 소지가 있습니다. 소스 파일은 C이지만 모든 정의와 #include 행을 가진 다른 파일의 일부로 만 단독으로 컴파일 할 수는 없습니다.