gcc - Makefile和gtk +的编译错误

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

最佳答案

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

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

关于gcc - Makefile和gtk +的编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16508748/

相关文章:

gcc - GCC 中的 stdcall 是否有任何等价物?

c++ - 声明指针变量时,内存分配给指针的名称还是指针的地址?

java - 通过命令行在linux中编译Java类

配置在静态 Tor 编译期间不读取 --with-openssl-dir

lua - LuaRocks LuaSocket安装失败

在Ubuntu上编译动态链接库并获得无法识别的调试输出级别

gcc - 如何从 gfortran 中转储 GENERIC 树

C 中的编译错误 : Inconsistent type declaration/Illegal redeclaration for identifier

compiler-errors - Julia : ERROR: LoadError: Failed to precompile a module after loading another one

java - 如何从程序的输出中删除错误?