昨天把環境搭建好了,今天就開始編寫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,裏面出現了自己的第一個框框。