使用通过 MacPorts 安装的 GD2 库通过 GCC 编译 C 程序时出现问题

问题描述 投票:0回答:2

我已经在 Mac 上使用 GCC 成功编译了一个 C 程序,并直接从源代码安装了 GD2 库。现在我尝试使用通过 MacPorts 安装的 GD2 库来执行此操作,但出现以下错误消息:

plotgeometry.c:5:16: error: gd.h: No such file or directory
plotgeometry.c: In function 'PlotGeometry':
plotgeometry.c:28: error: 'gdImagePtr' undeclared (first use in this function)
plotgeometry.c:28: error: (Each undeclared identifier is reported only once
plotgeometry.c:28: error: for each function it appears in.)
plotgeometry.c:28: error: expected ';' before 'im'
plotgeometry.c:29: warning: ISO C90 forbids mixed declarations and code
plotgeometry.c:748: error: 'im' undeclared (first use in this function)
plotgeometry.c:748: warning: implicit declaration of function 'gdImageCreate'
plotgeometry.c:752: warning: implicit declaration of function 'gdImageColorAllocate'
plotgeometry.c:780: warning: implicit declaration of function 'gdImageSetPixel'
plotgeometry.c:801: warning: implicit declaration of function 'gdImagePng'
plotgeometry.c:809: warning: implicit declaration of function 'gdImageDestroy'

我想,我需要为GCC提供GD2库的路径。

gd.h
可在以下目录中找到

$ find /opt/local/ -name 'gd.h'
/opt/local//include/gd.h
/opt/local//var/macports/software/gd2/2.0.35_7/opt/local/include/gd.h

我已将

/opt/local/include
添加到我的
$PATH
变量中,但没有帮助。我是否需要使用该路径来指定附加参数到 GCC 的路径? 你能帮我解决这个问题吗?

c gcc gd macports
2个回答
4
投票

您不使用$PATH。通过

-I
命令行选项将其添加到 gcc。对于直接构建:

gcc -I/opt/local/include ...

对于品牌:

CPPFLAGS='-I/opt/local/include' make

您还需要在链接时引用该库。使用

-L/opt/local/lib -lgd
或通过 make:

CPPFLAGS='-I/opt/local/include' LDFLAGS='-L/opt/local/lib' LDLIBS='-lgd' make

当然,您可以在 Makefile 中设置这些变量。


1
投票

您需要将

-I/opt/local/include
添加到编译器参数(而不是仅由 shell 用于查找可执行文件的 $PATH)。

© www.soinside.com 2019 - 2024. All rights reserved.