makefile和gtk +的编译错误

时间:2013-05-12 15:09:05

标签: gcc compilation compiler-errors gtk

我有一个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 个答案:

答案 0 :(得分:1)

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

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