Я только что установил gd2 с помощью портов Mac (sudo install gd2), которые устанавливали библиотеки в следующих местах:
/opt/local/include/gd.h
/opt/local/lib/libgd.dylib (link)
/opt/local/lib/libgd.la
/opt/local/lib/libgd.a
Вот и мой make-файл:
dev: main.o
g++ -L/opt/local/lib -I/opt/local/include -lgd -lpng -lz -ljpeg -lfreetype -lm main.o -o heatmap
main.o: main.cpp
g++ -c main.cpp
Поэтому, когда я создаю свое приложение на c ++, я добавляю '#include "gd.h"', который выдает:
main.cpp:4:16: error: gd.h: No such file or directory
Если я установлю gd.h как абсолютный путь (как указано выше) (не решение, но было любопытно), меня бросают:
g++ -L/opt/local/include -L/opt/local/lib main.o -o heatmap
Undefined symbols:
"_gdImagePng", referenced from:
_main in main.o
"_gdImageLine", referenced from:
_main in main.o
"_gdImageColorAllocate", referenced from:
_main in main.o
_main in main.o
"_gdImageDestroy", referenced from:
_main in main.o
"_gdImageCreate", referenced from:
_main in main.o
"_gdImageJpeg", referenced from:
_main in main.o
ld: symbol(s) not found
Итак, я понимаю, что это означает, что ld не может найти библиотеки, в которых он нуждается (следовательно, пытается дать ему подсказки со значениями "-L"). Поэтому, дав g ++ подсказки -L и абсолютный путь в #include, я могу заставить его работать, но я не думаю, что мне нужно это делать, как я могу сделать поиск g ++ / ld в нужных местах для библиотек
Дрю Дж. Сонн.
PS. с помощью:
- OSX 10.6.2
- gcc версии 4.2.1 (Apple Inc., сборка 5646) (точка 1)
EDIT:
Итак, после учета stfanB и ответа Михаэля, я перекомпилировал gd в локальный каталог (libraries
) и, таким образом, я изменил первую строку моего Makefile (я проверю cmake) на g++ -L./libraries/lib -I./libraries/include -lgd -lpng -lz -ljpeg -lfreetype -lm main.o -o heatmap
Но я все еще получаю main.cpp:3:16: error: gd.h: No such file or directory
EDIT:
Спасибо всем за ответы, вот мой последний (рабочий) make-файл для всех, кто хочет получить ответ:
dev: main.o
g++ -I./libraries/include -L./libraries/lib -lgd -lpng -lz -ljpeg -lfreetype -lm main.o -o heatmap
main.o: main.cpp
g++ -I./libraries/include -c main.cpp