我有一个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:抱歉我的英语不好......我是法国人
答案 0 :(得分:1)
我相信你的目的是让Affichage.o
只是大项目的一部分。如果确实如此,那么你应该在你给出的规则中添加-c
标志。这样它就会要求GCC只编译Affichage.c
但不与CRT链接(假设你有一个链接整个程序的单独规则)。在这种情况下,您无需将--libs
标记传递给pkg-config
。您应该将其移动到单独的规则进行链接。
在你的情况下,LD表示它错过了程序中的入口点(即main
函数)。我相信它存在于其他地方,而不是Affichage.c
文件中。