저는 Linux에서 SDL2와 그 확장 라이브러리를 사용하고있었습니다. 여기에 내가 SDL_image lib 디렉토리 구축하는 데 걸린 단계는 다음과 같습니다SDL_image.h가 jpg/png 파일을로드하지 않습니다?
- 다운로드 libjpeg 소스를 다음 표준 '구성은, 만들기, 설치하기'
- 다운로드 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를 사용하라!"라고 말하는 방법을 찾고 있습니다.
제가 보겠습니다. 나는 plz를 확인하겠습니까? 고마워, 내 친구! – Diaz
트릭을 통해 문제가 확인됩니다. 캐시를 지우고 다시 작성하십시오. lib의 이름을 변경하면 최상의 수정이되어서는 안됩니다. 행운을 빌어 요;) –
당신 말이 맞아요. SDL2_image에 대한 설정 파일을 수정했고 이제는 매력처럼 작동했습니다. 다시 한 번 감사드립니다! – Diaz