2013-05-12 81 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文件中。