c - 编译示例时出现 libGD 错误“不支持 PNG”
问题描述
不知道如何告诉编译器找到 PNG。
示例“arc.c”来自 libgd-2.2.5/examples 目录。我安装了 gd-devel:# yum install 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 支持?
解决方案
推荐阅读
- reactjs - Reactjs 和 Paddle 结帐
- c# - 拦截耳机上的特殊键(挂机/挂机)
- c++ - 我想打开一个文件并只获取该文件的一半文本,我不想获取所有内容
- yocto - KVM 模块未添加到映像目标
- django - 自定义 Django Admin 时出现 Django Fieldsets 错误
- r - 如何将构面标签 (strip.background) 的颜色更改为与其条形相同?
- java - 在链接列表的末尾插入项目时遇到问题 Java 不起作用
- rust - 如何解决 Rust 在方法设计中的“使用移动值”?
- bash - 仅针对子目录中的现有目录批量删除 (rm -rf)
- java - java - 如何从Java Spring Boot中的请求标头获取不记名令牌?