0

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

4

1 回答 1

1

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

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

于 2013-05-12T19:04:54.463 回答