Gcc 非常简单的程序上的未定义引用

Gcc 非常简单的程序上的未定义引用,gcc,linker,linker-errors,undefined-reference,Gcc,Linker,Linker Errors,Undefined Reference,一旦我安装了Ubuntu11.10,就会出现奇怪的错误。我想在我的C程序中使用GD,所以我安装了包“libgd2 xpm dev”。所有内容都已安装-文件gd.h和libgd.a位于“/usr/include”和“/usr/lib”中。所以,我试着用GD编译简单的程序 #include <stdio.h> #include <gd.h> int main() { gdImagePtr im, im_clear; int black, wh

一旦我安装了Ubuntu11.10,就会出现奇怪的错误。我想在我的C程序中使用GD,所以我安装了包“libgd2 xpm dev”。所有内容都已安装-文件gd.h和libgd.a位于“/usr/include”和“/usr/lib”中。所以,我试着用GD编译简单的程序

#include <stdio.h>
#include <gd.h>

int main()
{
        gdImagePtr im, im_clear;
        int black, white;
        FILE *out1;

        im = gdImageCreate(100, 100);
        im_clear = gdImageCreate(100, 100);

        white = gdImageColorAllocate(im, 255, 255, 255);
        black = gdImageColorAllocate(im, 0, 0, 0);
        return 0;
}

$ gcc -lgd gd.c
/tmp/cc6LReuX.o: In function `main':
gd2.c:(.text+0x19): undefined reference to `gdImageCreate'
gd2.c:(.text+0x31): undefined reference to `gdImageCreate'
gd2.c:(.text+0x59): undefined reference to `gdImageColorAllocate'
gd2.c:(.text+0x81): undefined reference to `gdImageColorAllocate'
我不知道该怎么办。这是gcc中的错误还是我做错了什么。在我以前的操作系统(Ubuntu 10.04)上,一切都很好。 我应该为您显示哪个文件?

更改:

$ gcc -lgd gd.c
致:

(理由:!)

哦,在你做的时候加上
-Wall
——每当我看到人们在编译时禁用警告时,我都会感到非常痛苦

$ gcc -Wall gd.c -lgd 

可能是重复的哇,它起作用了!gcc的不明显特征。谢谢。另外,我总是用-墙,别担心:)谢谢-那有助于减轻疼痛。;-)
$ gcc gd.c -lgd 
$ gcc -Wall gd.c -lgd