Проблема для компиляции C-программы GCC с библиотекой GD2, установленной через MacPorts - PullRequest
0 голосов
/ 21 июля 2010

Я успешно скомпилировал C-программу от GCC на Mac с библиотекой GD2, установленной непосредственно из исходников.Сейчас я пытаюсь сделать это с библиотекой GD2, установленной через MacPorts, и у меня появляется следующее сообщение об ошибке:

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'

Полагаю, мне нужно указать путь к библиотеке GD2 для GCC.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?Не могли бы вы помочь мне с этим?

Ответы [ 2 ]

4 голосов
/ 21 июля 2010

Вы не используете $ 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 голос
/ 21 июля 2010

Вам необходимо добавить -I/opt/local/include к аргументам компилятора (а не $ PATH, который используется только оболочкой для поиска исполняемых файлов).

...