不知道如何告诉编译器找到PNG。
示例“ arc.c”来自libgd-2.2.5 / examples目录。我安装了gd-devel:#yum安装gd-devel。我什至尝试使用./configure、make、make install安装libgd-2.2.5;安装在“ / usr / local”中。而且,仍然出现此错误:像这样编译“ arc.c”时出现“不支持PNG”:
[none@localhost ~]$ gcc arc.c -I/usr/local/include -L/usr/local/include -lgd
[none@localhost ~]$ ls
a.out arc.c arc.o
[none@localhost ~]$ ./a.out
no PNG support
/ usr / local / lib的内容:<< libgd.a libgd.la libgd.so libgd.so.3 libgd.so.3.0.5 >>
还通过以下方法检查是否支持PNG:
[none@localhost ~]$ ldconfig -p | grep libpng
libpng16.so.16 (libc6,x86-64) => /lib64/libpng16.so.16
其中显示“ PNG支持”。
arc.c
01 #include "gd.h"
02 #include <stdio.h>
03 #include <stdlib.h>
04
05 int main()
06 {
07 gdImagePtr im;
08 FILE *fp;
09 int cor_rad = 60;
10 im = gdImageCreateTrueColor(400, 400);
11 gdImageFilledRectangle(im, 0, 0, 399, 399, 0x00FFFFFF);
12
13 gdImageFilledArc (im, cor_rad, 399 - cor_rad, cor_rad *2, cor_rad *2, 90, 180, 0x0, gdPie);
14
15 fp = fopen("b.png", "wb");
16 if (!fp) {
17 fprintf(stderr, "Can't save png image.\n");
18 gdImageDestroy(im);
19 return 1;
20 }
21 #ifdef HAVE_LIBPNG
22 gdImagePng(im, fp);
23 #else
24 printf("No PNG support. Cannot save image.\n");
25 #endif
26 fclose(fp);
27
28 gdImageDestroy(im);
29 return 0;
30 }
很明显,错误来自第21行和第24行。在哪里验证了“ #ifdef HAVE_LIBPNG”?
如何告诉编译器找到PNG支持?