linux cross-compile for arm libpng libz (크로스컴파일 가이드)
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