我只是用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