A:我现在编写的.cgi程序要与uclinux上的其他进程进行通信, 仅将其交叉编译好的.cgi程序拷贝到uclinux目录下的romfs/home/httpd/cgi-bin/下,程序根本运行不起来,故后来直接把整个cgic205直接移植到uclinux上,还是不行,不知道是makefile没修改好,还是cgic205根本不能这样移植,请帮忙分析分析!
B:cgic205是为c语言编写cgi的函数库,如果uclinux系统本身没有配置对cgi的支持,仅把库搬上去好像没什么用吧?!
我只知道在配置boa web server的时候可以实现对cgi的支持!
至于其它的方法,如将cgi支持单独添加到uclinux系统中,我还真的不知道是否能够实现!
A:我可能没表达清楚。我是想利用cgic205这个函数库和uclinux里的库函数共同编制.cgi程序,所以我须把cgic205先移植到uclinux上,我把cgic205添加到用户程序里,当然还是要boa来访问。移植后,cgic205自带的cgictest.cgi可以执行,而我自编的.cgi程序在web浏览器上却显示: 500 Server Error.
不知道我的这个办法可不可行,因为我的确需要这两个库的支持,却不知道实现这一过程是不是有一些特别注意的地方。谢谢。
B:cgic205自带的cgictest.cgi可以执行
该测试程序是在uclinux系统环境下执行的吗?如果是的话,则表明该库已经可以使用!
>>而我自编的.cgi程序在web浏览器上却显示: 500 Server Error
确定你的程序是用交叉编译工具编译的吗?(如我用的交叉编译命令是:arm-elf-gcc -elf2flt mycgi.c -o mycgi)
A:cgic205的cgictest.cgi是在uclinux下执行的。
因为我把cgic205移到uclinux的user/下,所以编译器已经都默认为我编译uclinux程序的交叉编译器了。就是不知道,我自编的程序有没有找到uclinux的函数库。
cgic205里的makefile如下:
#CFLAGS=-g -Wall
#LDFLAGS = -Wl,-elf2flt
#CC=arm-elf-gcc
#AR=arm-elf-ar
RANLIB=$(CROSS)ranlib
LIBS=libcgic.a
all: $(LIBS) run.cgi capture
install: $(LIBS)
cp $(LIBS) $(INSTALLDIR)
cp cgic.h $(INSTALLDIR)
@echo $(LIBS) is in $(INSTALLDIR). cgic.h is in $(INSTALLDIR).
$(LIBS): cgic.o cgic.h
rm -f $(LIBS)
$(CROSS)ar rc $@ cgic.o
$(RANLIB) $@
#mingw32 and cygwin users: replace .cgi with .exe
run.cgi: run.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(LDLIBS$(LDLIBS_$@))
capture: capture.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(LDLIBS$(LDLIBS_$@))
romfs:
$(ROMFSINST) /home/httpd/cgi-bin/run.cgi
clean:
-rm -f *.o *.a run.cgi capture
B:测试程序cgictest.cgi确定是需要cgic205库才能运行的吗?如果是,则表明cgic205应该已经正确移植到uclinux中了!
然后就是测试你自己的cgi程序了:写一个也是确定需要cgic205库才能运行的测试程序,然后在本地先用交叉编译工具编译好,再然后直接将交叉编译生成的可执行文件烧写到板子的cgi-bin目录下,再测试是否可以正常访问!
不知你的步骤是不是这样?
也就是如果我的程序只需要cgic205库,那么程序执行没问题,但是如果还要用uclinux的uclibc函数,就出现错误
好像不是这个意思!
(1) 在boa成功配置之后,其本身就已经支持cgi了!其实其本身的cgi支持应该已经可以满足很多常规的需求了!
你可以先做这个测试,保证它能正常工作才是第一要务!!!
测该部分时,最简单的cgi程序即可!
(2) 其次再考虑cgic205库(该库仅是上述功能的一个扩展和延伸):
该库我没用过,不过我认为引入该库的目的无非就是要简化一些cgi的编程而已(比如说他将一些常规操作集成到一个函数里,这样直接调用一个库函数就可能少写许多代码等等,当然,它也可能提供一些新的功能比较强大的函数,但这些库函数不都是用基本的语法完成的吗!)
测该部分时,确保程序中有用到cgic205库所提供的库函数等等!




