我对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:对不起,我英语不好...我是法国人

最佳答案

我相信您的意图是使Affichage.o仅成为大程序的一部分。如果确实如此,则应该在给定的规则中添加-c标志。这样,它将要求GCC仅编译Affichage.c而不与CRT链接(假设您有一个单独的规则来链接整个程序)。在这种情况下,您无需将--libs标志传递给pkg-config。您应将其移至单独的链接规则。

在您的情况下,LD说它错过了程序的入口点(即main函数)。我相信它位于其他地方,而不是Affichage.c文件中。

10-06 01:43