2012-05-02 11 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에/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'라고했습니다. 헤더 파일입니다. include 경로 ('-I/usr/include/libpng' 디렉토리에'png.h'가있는 것으로 가정)에'-L' 대신'-I'를 사용하고 싶습니다. 'libpng.so' (또는'libpng.a','libpng.dll' 등)가 들어있는 디렉토리에'-L'을 사용하고 라이브러리에 링크하기 위해'-lpng'를 사용할 필요가 있습니다. '-L'은 링크 할 라이브러리를 찾을 곳을 말하며,'-l'은 링크 할 라이브러리입니다. – greg

0

당신이 놓칠 수 있도록 컴파일러가 오브젝트에 대한 링크를 찾을 수 없습니다 때 문제 "로 정의되지 않은 참조"를 얻을 인클루드 정도 그렉 말한 시도하고 일부는 당신이에 연결하고