Khi tôi đã cài đặt Ubuntu 11.10, xuất hiện lỗi lạ. Tôi muốn sử dụng GD với chương trình C của mình, vì vậy tôi đã cài đặt gói "libgd2-xpm-dev". Mọi thứ đã được cài đặt - các tệp gd.h và libgd.a nằm trong "/ usr/include" và trong "/ usr/lib". Vì vậy, tôi đã cố gắng để biên dịch chương trình đơn giản với GD.Tham chiếu không xác định trên chương trình rất đơn giản
#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'
Chờ đợi, cái gì? Được rồi, hãy kiểm tra một cái gì đó.
# 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
Và tôi không biết mình phải làm gì. Nó là một lỗi trong gcc hoặc tôi làm điều gì đó sai trái. Trên os trước đây của tôi (Ubuntu 10.04) tất cả mọi thứ hoạt động tốt. Tôi nên hiển thị tệp nào cho bạn?
bản sao có thể có của [trình liên kết cho tôi biết nó không thể giải quyết các biểu tượng, nhưng chúng ở đó?] (Http://stackoverflow.com/questions/8382153/linker-tells-me-it-cant- giải quyết-biểu tượng-nhưng-họ-đó) –