昨天把环境搭建好了,今天就开始编写helloworld了。总体上很顺利,但是还是出现了好几个错误,感觉比作qt的时候顺利多了,现在还对qt稀里糊涂的。
照着实力程序我首先写了这段代码:
第一次编译:gcc -o bloodwolf window.c -lminigui -ljpeg -lpng -lz
就抛出这么多错误:
/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o: In function `_start':
/build/buildd/eglibc-2.10.1/csu/../sysdeps/i386/elf/start.S:115: undefined reference to `main'
/usr/local/lib/libminigui.so: undefined reference to `sem_init'
/usr/local/lib/libminigui.so: undefined reference to `pthread_key_create'
/usr/local/lib/libminigui.so: undefined reference to `sem_destroy'
/usr/local/lib/libminigui.so: undefined reference to `pthread_getspecific'
/usr/local/lib/libminigui.so: undefined reference to `pthread_create'
/usr/local/lib/libminigui.so: undefined reference to `pthread_cancel'
/usr/local/lib/libminigui.so: undefined reference to `pthread_key_delete'
/usr/local/lib/libminigui.so: undefined reference to `sem_post'
/usr/local/lib/libminigui.so: undefined reference to `sem_getvalue'
/usr/local/lib/libminigui.so: undefined reference to `pthread_setspecific'
/usr/local/lib/libminigui.so: undefined reference to `sem_wait'
/usr/local/lib/libminigui.so: undefined reference to `pthread_join'
collect2: ld returned 1 exit status
查了以下,似乎是没加必要的编译选项
gcc -o bloodwolf window.c -lminigui -ljpeg -lpng -lz -lminigui -lmgext -lpthread
这样就可以了。不过还有个错误
/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o: In function `_start':
/build/buildd/eglibc-2.10.1/csu/../sysdeps/i386/elf/start.S:115: undefined reference to `main'
意思是未定义的main函数,入口点有问题,估计会是在int MiniGuiMain (int argc,const char* argv[])这里出问题,看了半天,原来是这样的
int MiniGUIMain (int argc,const char* argv[])。唉,终于告捷了,启动qvfb,里面出现了自己的第一个框框。