본문 바로가기

내가 작업한 것들/소프트웨어

MinGW/Code::Blocks 용 libPNG (zlib) 32/64bit


이 프로젝트 역시, libZ (zlib) 을 CodeBlocks 와 MinGW 를 활용해 쓰기 위해 태어났습니다.
libPNG 1.5.1.0 소스를 static lib 으로 빌드 하도록 재구성 했으며, 최초 SourceForge 에서 소스를 내려 받으면 zlib 이 없는 것을 고려, 모든 것을 한번에 열어서 빌드 할 수 있도록 하였습니다.


libPNG_1510_for_bin_only.zip


libPNG_1510_for_CodeBlocks_minGW.zip

두개의 압축 파일이 있는데, bin_only 는, lib 참조만을 위해 쓸때 필요하도록 만든 것 이고, 나머지는 binary 빌드가 가능하도록 만든 CodeBlocks 프로젝트 파일 입니다.
압축 파일에 다음과 같이 디렉터리 구조가 존재 하고 있으며, 각각 설명을 드리도록 하겠습니다.
( 또는 cbp 프로젝트 파일을 열어서 직접 확인 하는 방법도 있습니다. 프로그래머 라면 이것이 편리하고 빠르겠죠)

bin -> 빌드된 archive lib 이 생깁니다.
contrib, docs, images, scripts -> 원래 libPNG 1510 에 있던 폴더들이나, 남겨 두었습니다. (사용되지 않습니다)
include -> libPNG 사용에 관련된 libZ 및 libPNG 용 header가 들어 있습니다.
libs -> libZ archive 가 들어 있습니다.
src -> c 소스 파일이 들어 있습니다.
test -> test 용 c 파일입니다. 직접 프로젝트를 만들어 테스트 가능 합니다.

bin 은 cbp 파일을 CodeBlock 로 열고, 빌드를 하게 되면 나오는 archive 위치 입니다. libPNG_d.a / libPNG.a / libPNG64.a 이렇게 3가지가 나오도록 되어 있으며, 각각 CodeBlocks 내에서 build target 을 설정 하는 것에 따라 각기 다른 archive 가 나오게 됩니다. 주의 할 점은, minGW 64bit 는 개인의 환경에 맞춰서 빌드 하도록 해야 합니다.

contrib , docs, images, scripts 는 원래 소스에 있던 부분을 분리한 것입니다.
직접 explorer 에서 확인이 가능합니다.

include 와 libs 안에는 libZ 를 쓰기 위한 파일들이 들어 있습니다.
이는 제 이전의 포스팅 글 에서 확인 할수 있습니다.
PNG 관련 소스는 src 안에 있으며, 이는 libPNG.cbp 에서 열어서 확인 할 수 있도록 하였습니다.

bin 안에는 각각 다음과 같이 파일이 있으며, 이 파일들은 다음과 같습니다.
libPNG_d.a : 디버깅용 libPNG archive 파일. 32bit 입니다.
libPNG.a : 릴리즈용 libPNG archive 파일. 역시 32bit 입니다.
libPNG64.a : 릴리즈용 64bit libPNG archive 파일 입니다.

사용된 컴파일러는 각각 다른 버젼이나, 모두 4.x 대의 릴리즈 버젼을 사용하였습니다.
만약 archive 사용에 문제가 있다면, cbp 파일을 열고, CodeBlocks 상의 Tool chain 을 설정하여, 자신의 환경에 맞게 다시 한번씩만 빌드 해 주시기 바랍니다. (Ctrl+F11)

libPNG 최신버젼을 주워다 쓰기에 뭔가 어려움을 느끼시는 분들에게 도움이 되길 바라며 ...