2012-05-02 235 views
-1

m trying to compile source code, but receive: undefined reference to png_read_info' 文件標題: 的#include 「PngImage.hh」未定義的參考`png_read_info '

#include <png.h> 

#include <cstdio> 
#include <csetjmp> 
#include <cstring> 

我的編譯器設置: -I/usr/include目錄/ libxml2的-I在/ usr/include/osmpbf -O0 -g3 -Wall -c -fmessage-length = 0 -lpng

我在做什麼錯了?

更新: 我真的試圖鏈接: -I/USR /包含/ libxml2的-I/USR /包含/ osmpbf -O0 -g3 -Wall -c -fmessage長度= 0 -L的/ usr /包括/ libpng -lpng

庫libpng已經安裝。沒有什麼變化,我再次收到: 未定義的參考topng_read_info

固定。我的錯誤。我在eclipse中設置編譯器設置而不是鏈接器設置。謝謝大家的回答

+0

你鏈接到的libpng的? –

回答

3

你沒有鏈接到libpng。將-L/path/to/dir_containing/libpng -lpng添加到您的鏈接步驟。

+0

我正在嘗試鏈接:-I/usr/include/libxml2 -I/usr/include/osmpbf -O0 -g3 -Wall -c -fmessage-length = 0 -L/usr/include/libpng -lpng Library libpng已經安裝。沒有什麼變化我再次收到:undefined reference topng_read_info – native1989

+0

你說'-L/usr/include/libpng'。這些是頭文件。你想使用'-I'而不是-L'作爲包含路徑('-I/usr/include/libpng',假設該目錄包含'png.h')。您仍然需要對包含'libpng.so'(或'libpng.a','libpng.dll'等)的目錄使用'-L',然後使用'-lpng'鏈接庫。 '-L'表示要在哪裏查找要鏈接的庫,'-l'是要鏈接的庫。 – greg

0

你得到「未定義的引用」的問題時,編譯器無法找到鏈接到一個對象,所以你會錯過一個包含或設置庫路徑所以儘量什麼格雷格說和檢查,如果你錯過了一些包括