주 메뉴 열기

wwiki β

크로스컴파일

타겟: arm

목차

크로스 컴파일러 설치편집

$ sudo apt install   gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf

pkg-config 스크립트편집

#!/bin/sh
if [ "$CROSS_COMPILING" = TRUE ]; then
   SYSROOT=[타켓루트경로]
   export PKG_CONFIG_PATH=${SYSROOT}/usr/lib/arm-linux-gnueabihf/pkgconfig:${SYSROOT}/usr/share/pkgconfig
   export PKG_CONFIG_LIBDIR=${SYSROOT}/usr/lib/pkgconfig
   export PKG_CONFIG_SYSROOT_DIR=${SYSROOT}
fi

exec pkg-config "$@"

빌드과정편집

흔히 configure 전까지의 과정을 묶어서 bootstrap 또는 autogen.sh 라는 script 로 만들어서 한꺼번에 실행시킨다.

Makefile.am 작성편집

#바이너리명
bin_PROGRAMS = hello
#소스명
hello_SOURCES = hello.c

configure.ac 생성편집

$ autoscan

생성된 configure.scan를 수정하여 configure.ac로 저장

AC_INIT, AM_INIT_AUTOMAKE는 필수이다.

AC_INIT는 적절히 수정한다.

AM_INIT_AUTOMAKE는 추가한다.

AM_INIT_AUTOMAKE

configure 생성편집

$ aclocal
$ autoheader
$ autoconf

Makefile.in 생성편집

$ automake --foreign --add-missing --copy

Makefile 생성편집

$ ./configure

Makefile 구조편집

목적규칙: 의존성
	레시피
의존성: 파일이 바뀌었는지 확인할 파일들(증분빌드)
설치

빌드편집

$ make
$ make check
$ make install

기본설치 경로: /usr/local