"크로스컴파일"의 두 판 사이의 차이

wwiki
이동: 둘러보기, 검색
(configure.ac 생성)
5번째 줄: 5번째 줄:
 
  $ sudo apt install  gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
 
  $ sudo apt install  gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
  
=pkg-config스크립트=
+
=pkg-config 스크립트=
 +
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
#!/bin/sh
 
#!/bin/sh
18번째 줄: 19번째 줄:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=소스작성과정=
+
=빌드과정=
 +
 
 +
흔히 configure 전까지의 과정을 묶어서 bootstrap 또는 autogen.sh 라는 script 로 만들어서 한꺼번에 실행시킨다.
 +
 
 
==Makefile.am 작성==
 
==Makefile.am 작성==
 +
 
  #바이너리명
 
  #바이너리명
 
  bin_PROGRAMS = hello
 
  bin_PROGRAMS = hello
 
  #소스명
 
  #소스명
 
  hello_SOURCES = hello.c
 
  hello_SOURCES = hello.c
 +
 
==configure.ac 생성==
 
==configure.ac 생성==
 +
 
  $ [[autoscan]]
 
  $ [[autoscan]]
 +
 
생성된 configure.scan를 수정하여 configure.ac로 저장
 
생성된 configure.scan를 수정하여 configure.ac로 저장
  
37번째 줄: 45번째 줄:
  
 
==configure 생성==
 
==configure 생성==
 +
 
  $ aclocal
 
  $ aclocal
 
  $ autoheader
 
  $ autoheader
42번째 줄: 51번째 줄:
  
 
==Makefile.in 생성==
 
==Makefile.in 생성==
 +
 
  $ automake --foreign --add-missing --copy
 
  $ automake --foreign --add-missing --copy
  
 
==Makefile 생성==
 
==Makefile 생성==
 +
 
  $ ./configure
 
  $ ./configure
  
=빌드순서=
+
==빌드==
$ [[aclocal]]
+
 
$ [[autoheader]]
 
$ autoconf
 
$ automake --add-missing -copy
 
$ ./[[configure]]
 
 
  $ make
 
  $ make
 
  $ make check
 
  $ make check
 
  $ make install
 
  $ make install
 
흔히 configure 전까지의 과정을 묶어서 bootstrap 또는 autogen.sh 라는 script 로 만들어서 한꺼번에 실행시킨다.
 

2019년 5월 26일 (일) 07:44 판

타겟: 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

빌드

$ make
$ make check
$ make install