我只是用MAC端口(须藤安装GD2),其安装在以下地方库安装GD2:设置库包括在C++中的路径
/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++程序,我加上“#包括‘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 search int eh适合库的位置?
德鲁J.索内。
PS。使用: - OSX 10.6.2 - gcc版本4.2.1(苹果公司建立5646)(点1)
编辑: 好了,所以考虑到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
编辑: 感谢所有的答案,这里是我最后的(工作)makefile文件给其他许多人想要答案的人:
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
我最近一直在使用JamPlus,非常喜欢它。 – 2010-03-23 01:47:14