2012-12-13 2 views
0

libjpeg를 사용하여 메모리 블록에 포함 된 jpeg의 RGB 값을 압축 해제하려고합니다. 원래 시스템에 6.2 버전이 있었지만 jpeg_mem_src 함수가 필요 했으므로 8d로 업그레이드했습니다.libjpeg 잘못된 버전 오류

./configure 
sudo make clean 
sudo make 
sudo make uninstall 
sudo make install 

내가 (파일을 .o를 제거하고 다시 컴파일하는 명령 할인)를 사용하여 내 프로그램을 컴파일 :이 코드를 실행하는 경우에는

g++ main.o googlestreetview.o -lopencv_core -lopencv_highgui -lcurl -ltinyxml2 -ljpeg -o example 

을 나는 구성/설치하려면 다음과 명령을 사용 :

struct jpeg_decompress_struct cinfo; 
struct jpeg_error_mgr jerr; 
cinfo.err = jpeg_std_error(&jerr); 
jpeg_create_decompress(&cinfo); 
단순히 얻을

: "잘못된 JPEG 라이브러리 버전 : 라이브러리 62, 호출자가 예상 80"

필자는 시스템에서 libjpeg를 수동으로 제거한 것이 아니기 때문에 이상하게 보입니다. 그러나 8d를 다시 컴파일하고 여러 번 설치했습니다. 이 문제를 해결하기 위해 어떤 단계를 밟아야합니까? 다시 컴파일하기 전에

+0

이것은 일반적으로 일치하지 않는 libjpeg 헤더 및 라이브러리 때문에 발생합니다. libjpeg 헤더 파일의 * 오래된 * 복사본이 있습니까? 그렇다면 제거하십시오. –

+0

내 생각 엔 내 헤더가 올바른 버전 (80)이고 내 라이브러리가 잘못된 버전 (62)이지만 libjpeg 라이브러리를 제거하고 다시 컴파일하고 다시 설치하기 위해 내 컴퓨터를 샅샅이 뒤졌으며 여전히 변경되지 않았습니다. 나는 그것이 숨어있는 곳을 잃어 버렸습니다. – user293895

+0

동적 라이브러리는로드 된 것이 있으면 RAM에 남아 있습니다. 재부팅하면 문제가 해결됩니다. – stark

답변

0

./configure --with-jpeg8 

을 시도합니다.