gpt4 book ai didi

gcc - 对非常简单的程序的 undefined reference

转载 作者:行者123 更新时间:2023-12-04 19:16:45 26 4
gpt4 key购买 nike

一旦我安装了 Ubuntu 11.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'

等等,什么?好的,让我们检查一下。
# Let's sure the lib was found.
$ gcc -lgd_something gd.c
/usr/bin/ld: cannot find -lgd_something

# Lets sure we made no mistake with the symbol's name
$ nm /usr/lib/libgd.a
...
00000dc0 T gdImageColorAllocate
...
000003b0 T gdImageCreate

# So, everything should be ok
$ 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'

$ echo $LD_LIBRARY_PATH
# Nothing

我不知道我该怎么办。是 gcc 中的错误还是我做错了什么。在我以前的操作系统(Ubuntu 10.04)上一切正常。
我应该向您展示哪个文件?

最佳答案

改变:

$ gcc -lgd gd.c

到:
$ gcc gd.c -lgd 

(原因: link order matters!)

哦,加上 -Wall当你在做的时候 - 每次我看到人们在禁用警告的情况下编译时,我都会感到非常痛苦。
$ gcc -Wall gd.c -lgd 

关于gcc - 对非常简单的程序的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8415065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com