2012-05-02 23 views
-1

I m trying to compile source code, but receive: undefined reference to png_read_info' ファイルヘッダ: の#include "PngImage.hh"未定義の参照 '

#include <png.h> 

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

私のコンパイラ設定: -Iは/ usr /含める/ libxml2の-Iは/ usr/include/osmpbf -O0 -g3 -Wall -c -fmessage-length = 0 -lpng

私は間違っているのですか?

更新: I`m連結しようと:含める/ -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 ライブラリlibpngは既にインストールされています。 undefined reference topng_read_info – native1989

+0

'-L/usr/include/libpng'と言った。これらはヘッダファイルです。インクルードパス( '-I/usr/include/libpng'ディレクトリに' png.h'が入っていると仮定して)に '-L'の代わりに' -I'を使いたいとします。 'libpng.so'(または' libpng.a'、 'libpng.dll'など)を含むディレクトリには' -L'を使用し、ライブラリにリンクするには '-lpng'を使用する必要があります。 '-L'はリンクするライブラリを探す場所を示し、' -l'はリンクするライブラリです。 – greg

0

あなたが欠場ので、コンパイラはオブジェクトへのリンクを見つける傾けるときに問題「への未定義参照」を取得含めるかそこらのグレッグが言ってみてください、あなたは、いくつかは、あなたがにリンクされています