偶尔编程的胖子 40岁之后还能坚持学习
分类: C/C++
2008-04-17 19:13:49
之前完成GoAhead webserver移植后,写了移植手记,但其中并未包含无文件系统的rom格式的web文件操作,近日来就此问题,网友提出了很多提问,因工作原因,无法一一作答。
在此对此问题作一详述,希望能够帮助有需要的朋友。
首先浏览文件webcomp.c(在GoAhead源代码文件夹内可以找到的),此文件就是我们需要用来压缩我们的web文件的源代码,
其中int gmain(int argc, char_t* argv[]);此函数就是我们来压缩的文件,具体使用时此函数较麻烦,需要手动输入许多内容。
修改为如下函数:
int webcomp(char_t*prefix, char_t *fileList)
{
if (compile(fileList, prefix) < 0) {
return -1;
}
return 0;
}
此函数就很简单了
第一个参数,就是后面列表中每个文件的前缀,
后面就是文件列表文件,注意:它是个文件名字,此文件内容是web文件列表
格式如下:
再次包含一个函数;
void CompareWeb(void)
{
char sListName2[] = "web.lst" ;
GetFileList("web");
#ifdef MPE5_SYSTEM_FUNC
webcomp("host:c:/mpe5/web", sListName2);
remove(sListName2);
#endif
}
至于GetFileList()函数如何获取,利用dirList(fd, sDirectory, 0, 1);此函书既可,具体如何实现,请查阅vxworks帮助文档或者搜索源代码就好了
(运行该函数时,需要一个有文件系统的系统来执行,可以使用在vc下编辑这些代码,当然vc下执行时需要windows版本的dirList函数,这个我就没有研究了,我个人使用了vxsim,即仿真版本,可以使用fat文件格式)
通过CompareWeb函数后,会生成webrom.c,将此文件加入您的vxworks项目中,在goahead项目编译选项中加入:-DWEBS_PAGE_ROM,然后全编译整个项目,全部完成
中间的一些细节部分可能不能完全详尽,相信大家都可以搞定的,哈哈
祝大家周末愉快