2014-02-23 4 views
2

저는 Linux에서 SDL2와 그 확장 라이브러리를 사용하고있었습니다. 여기에 내가 SDL_image lib 디렉토리 구축하는 데 걸린 단계는 다음과 같습니다SDL_image.h가 jpg/png 파일을로드하지 않습니다?

  1. 다운로드 libjpeg 소스를 다음 표준 '구성은, 만들기, 설치하기'
  2. 다운로드 SDL_image 소스 표준 '구성, 확인, 설치하게'

나는 libpng에 대해 동일한 작업을 수행 했으므로 여기서 단계를 생략 할 것입니다.

SDL_CTexture::load error: JPEG loading error 
SDL_CRenderer:copy error: Invalid texture 

PNG에 대한 (. 후자의 부분은 SDL_GetError에서 온 자신에 의해 추가 된 접두사를 무시) : 나는 각각 JPG 파일과 PNG 파일을로드하려고

, 나는 다음과 같은 오류 메시지를 받았습니다 :

SDL_CTexture::load error: Failed loading png_set_longjmp_fn: /lib/i386-linux-gnu/libpng12.so.0: undefined symbol: _png_set_longjmp_fn 
SDL_CRenderer:copy error: Invalid texture 

그런데 'make check'는 libpng 빌드를 시도 할 때 실패 목록이 길어졌습니다. 하지만 libpng를 미리 zlib에 설치했습니다.

아이디어가 있으십니까?


추신. SDL_image를 빌드 할 때 './configure'를 실행하면 libpng와 libjpeg 모두에 '예'라고 표시됩니다.

PPS. 지금은 SDL_image가 /lib/i386-linux-gnu/libpng12.so에 링크되어 있다는 것을 알았지 만 새로 만든 libpng는/usr/local/lib에 설치되었습니다. SDL_image에 최신 버전에 연결하도록 지시하려면 어떻게해야합니까? 최신 libs (libpng16.so)를/lib/i386-linux-gnu에 복사하려고 시도했지만 여전히 이전 libpnf12.so를 참조하고있었습니다.

PPPS. 마지막으로 libpng16.so의 이름을 libpng12.so.0으로 바꾸고이 파일을/lib/i386 ...으로 복사했습니다. 여기서 SDL_image는이 파일을 참조했습니다. 그러나이 솔루션에는 예의가 없습니다. 나는 아직도 SDL_image에 "이 새로운 libpng를 사용하라!"라고 말하는 방법을 찾고 있습니다.

답변

1

올바른 lib 릴리스로 컴파일하지 않는 것 같습니다. 링커가 configure에서 올바른 버전을 사용하게하십시오.

거기에보세요 http://www.willusher.io/sdl2%20tutorials/2013/08/18/lesson-3-sdl-extension-libraries/ qa 섹션에서 남자가 당신과 같은 문제가있었습니다.

이 대답은 도움이 될 수도 있습니다. CMake Finding Libraries on Wrong Path

+0

제가 보겠습니다. 나는 plz를 확인하겠습니까? 고마워, 내 친구! – Diaz

+1

트릭을 통해 문제가 확인됩니다. 캐시를 지우고 다시 작성하십시오. lib의 이름을 변경하면 최상의 수정이되어서는 안됩니다. 행운을 빌어 요;) –

+0

당신 말이 맞아요. SDL2_image에 대한 설정 파일을 수정했고 이제는 매력처럼 작동했습니다. 다시 한 번 감사드립니다! – Diaz