elfutil을 크로스 컴파일하는 방법

elfutil을 크로스 컴파일하는 방법

내 시스템(uname --all)

Linux shyamdaramubtnb 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

내 목표

ARM Cortex A7

저는 perfARM용 크로스 컴파일 도구를 사용 하고 있지만 나중에 VMLinux 파일을 읽어야 perf컴파일하려면 패키지가 필요하지만 elfutilselfutil을 크로스 컴파일하는 방법을 제안할 수 있는 사람이 있습니까 ?

에서 다운로드한 패키지여기.

현재 다음 절차를 따르고 있습니다.

$ aclocal
$ autoheader
$ autoconf
$ automake --add-missing
$ ./configure --host=arm-none-linux-gnueabi \
--prefix=/home/kwangwoo/tools/arm-2010q1/arm-none-linux-gnueabi/libc/usr/
$ make
$ make install

하지만 ./configure를 실행하는 과정에서 오류가 발생했습니다.

./configure: line 5115: syntax error near unexpected token `zlib,ZLIB,z,gzdirect,gzip'
./configure: line 5115: `eu_ZIPLIB(zlib,ZLIB,z,gzdirect,gzip)'

이유는 무엇입니까? 이상한 점은 다운로드한 폴더에서 Makefile을 찾을 수 없다는 것입니다. make 파일을 구성해야 합니까? ( , Makefile.in와 같은 문서를 봤습니다 Makefile.am.)

최신 개발 1: 나는 주목하기 시작했습니다협회내 문제에 대한 몇 가지 트릭이 있으며 내가 하려는 것과 동일한 작업을 수행하려고 합니다.

나는 무시하기 전에 몇 가지 경고를 발견했고 그것이 문제의 실제 원인이라는 것을 알았습니다. 런타임에 aclocal다음과 같은 오류가 발생했습니다.

warning: macro AM_PO_SUBDIRS not found in library.

intltool설치하고 해결함으로써gettext

실행 후 automake --add-missing경고 메시지가 나타납니다.

libdwfl/Makefile.am:73: ZLIB does not appear in AM_CONDITIONAL
libdwfl/Makefile.am:76: BZLIB does not appear in AM_CONDITIONAL
libdwfl/Makefile.am:79: LZMA does not appear in AM_CONDITIONAL
tests/Makefile.am:59: BIARCH does not appear in AM_CONDITIONAL
tests/Makefile.am:122: BIARCH does not appear in AM_CONDITIONAL
tests/Makefile.am:135: LZMA does not appear in AM_CONDITIONAL
tests/Makefile.am:139: ZLIB does not appear in AM_CONDITIONAL

링크에서 제안한대로 시도 autoreconf -f -i하고 automake --add-missing다시 시도했는데 매력처럼 작동했습니다.

그런 다음 실제로 어디에서나 멈추지 않은 위의 ./configure를 실행했습니다. 일부 i386 및 x86_64 관련 스크립트가 포함된 Makefile 및 백엔드/Makefile 섹션에 주석을 추가하는 등 몇 가지 생각을 했다면 해결되었습니다. elfutils 관련 빌드 문제 팔을 위해!

위 단계에서 정확히 무슨 일이 일어나고 있는지 설명할 수 있는 사람이 있나요?

답변1

autotools 제품군은 (이론적으로) 모든 유형의 시스템에서 소프트웨어 패키지의 설정 및 컴파일을 가상으로 자동화하기 위한 스크립트 및 도구의 프레임워크입니다.

이것은 매우 복잡합니다.

일반적으로 첫 번째 단계는구성소프트웨어를 컴파일하는 데 필요한 모든 것이 시스템에 있는지 확인하고 해당 소프트웨어가 어디에 있는지(그리고 어떤 버전이 있는지) 알 수 있도록 시스템을 구축하십시오.

그런 다음 Makefile 기반의 빌드 시스템이 구성되고 사용할 준비가 됩니다.

구성 스크립트 내부에서 일부 오류가 발생하여 구성 단계에서 중지된 것 같습니다.

스크립트 이전에 실행하는 명령은 configure크로스 컴파일에 필요할 수 있으므로 일반적으로 개발자용입니다.

마지막으로 오류 메시지는 zip 라이브러리 감지 시 중지되는 것 같습니다(스크립트는 목록 표시 중에서 선택할 수 있으며 zip은 표준 알고리즘이므로 lib 중 하나만 선택할 수 있지만 만족스럽지 않은 것 같습니다). 스크립트를 찾는 것).

배포판과 작업 환경을 지정하지 않았기 때문에 더 많은 정보를 공개할 수 없습니다.

관련 정보