2013-05-12 65 views
0

編譯錯誤我有GTK一個很大的問題+與makefile文件和GTK +

,當我和我的makefile編譯,我有:

gcc Affichage.c -W -Wall `pkg-config --cflags --libs gtk+-2.0` 
/usr/lib/gcc/i686-linux-gnu/4.7/../../../i386-linux-gnu/crt1.o: dans la fonction « _start »: 
(.text+0x18): référence indéfinie vers « main » 
collect2: erreur: ld a retourné 1 code d'état d'exécution 
make: *** [Affichage.o] Erreur 1 

在Makefile中,該行是:

Affichage.o: Affichage.c 
    gcc Affichage.c -W -Wall `pkg-config --cflags --libs gtk+-2.0` 

你是個好主意嗎?

PS:對不起,我的英文不好......我是法國人

回答

1

我相信你的意圖是使Affichage.o只有一個大計劃的一部分。如果真的是這樣,那麼你應該添加-c標誌給你的規則。這樣它就會要求GCC只編譯Affichage.c而不是與CRT鏈接(假設你有一個單獨的規則鏈接整個程序)。在這種情況下,您不需要將--libs標誌傳遞給pkg-config。您應該將其移至單獨的鏈接規則。

在你的情況下,LD說它錯過了你程序中的入口點(即main函數)。我相信它駐留在別處,而不是在Affichage.c文件中。