libpng와 libz는 서로 dependancy가 있어서 libpng 빌드를 위해 libz가 반드시 필요하다.
위의 패키지들의 소스코드와 툴체인이 이미 존재한다는 가정하에 아래의 순서로 빌드하고, 툴체인에 패키지들을 복사(설치) , 타겟보드의 파일시스템에도 복사(설치) 하면 핑핑 잘 돌아간다.
configure에 대한 옵션을 잘 이해하는 것이 무엇보다 중요하다.
생성된 라이브러리 파일을 툴체인과 임베디디 보드에 복사하기 위해
로컬에 디렉토리인 release 생성 후, 빌드
1,tar zxvf zlib-1.2.11.tar.gz
2,mv zlib-1.2.11 zlib
3,cd zlib
4,mkdir release
5,CC=arm-linux-gcc ./configure --prefix=./release
6,make && make install
release/
├── include
│ ├── zconf.h
│ └── zlib.h
├── lib
│ ├── libz.a
│ ├── libz.so -> libz.so.1.2.11
│ ├── libz.so.1 -> libz.so.1.2.11
│ ├── libz.so.1.2.11
│ └── pkgconfig
│ └── zlib.pc
└── share
└── man
└── man3
└── zlib.3
-> 생성된 라이브러리를 툴체인에 복사
7, cd release
8, tar cvzf zlib.tar.gz include/ lib/ share/
9, cd ../../../../toolchain/stbgcc-4.8-1.5/arm-linux-gnueabihf/
10,cp ../../../factory_app/EXT/zlib/release/zlib.tar.gz .
11,tar zxvf zlib.tar.gz
libpng cross compile
1, tar xvf libpng-1.6.35.tar.xz
2, mv libpng-1.6.35 libpng
3, cd libpng
4, mkdir release
5, ./configure --host=arm-linux-gnueabihf CC=arm-linux-gcc AR=arm-linux-ar STRIP=arm-linux-strip RANLIB=arm-linux-ranlib --prefix=~/EXT/libpng/release
6, make && make install
$ tree .
.
├── bin
│ ├── libpng16-config
│ ├── libpng-config -> libpng16-config
│ ├── pngfix
│ └── png-fix-itxt
├── include
│ ├── libpng16
│ │ ├── pngconf.h
│ │ ├── png.h
│ │ └── pnglibconf.h
│ ├── pngconf.h -> libpng16/pngconf.h
│ ├── png.h -> libpng16/png.h
│ └── pnglibconf.h -> libpng16/pnglibconf.h
├── lib
│ ├── libpng16.a
│ ├── libpng16.la
│ ├── libpng16.so -> libpng16.so.16.35.0
│ ├── libpng16.so.16 -> libpng16.so.16.35.0
│ ├── libpng16.so.16.35.0
│ ├── libpng.a -> libpng16.a
│ ├── libpng.la -> libpng16.la
│ ├── libpng.so -> libpng16.so
│ └── pkgconfig
│ ├── libpng16.pc
│ └── libpng.pc -> libpng16.pc
└── share
└── man
├── man3
│ ├── libpng.3
│ └── libpngpf.3
└── man5
└── png.5
9 directories, 23 file
7, cd release
8, tar cvzf libpng.tar.gz bin/ include/ lib/ share/
9, cd ../../../../toolchain/stbgcc-4.8-1.5/arm-linux-gnueabihf/
10,cp ../../../factory_app/EXT/libpng/release/libpng.tar.gz .
11, tar xvzf libpng.tar.gz
libz
ln -s libz.so.1.2.11 libz.so
ln -s libz.so.1.2.11 libz.so.1
libpng
ln -s libpng16.so.16.35.0 libpng16.so.16
ln -s libpng16.so.16.35.0 libpng16.so
ln -s libpng16.so libpng.so
위의 command들을 makefile에 merge
출처 : https://badayak.com/entry/make-z-png-jpeg-so-lib-file