2017-04-27 1 views
0

현재 autotools 프로젝트 lnav를 yocto로 빌드 가능하도록 구조 조정하는 중입니다. 이는 lnav 자체가 크로스 컴파일되어야한다는 것을 의미하지만 일부 도우미 프로그램은 기본적으로 빌드해야합니다.autotools - 크로스 컴파일 및 네이티브 중간 구축 프로그램 작성

이 스레드는 이미 this thread이지만, 첫 번째 제안 된 솔루션은 작동하지 않지만 두 번째는 프로젝트 구조에 많이 침투합니다.

누군가 내게이 문제를 해결하는 방법에 대한 힌트를 줄 수 있습니까? 어쩌면 어떤 AC/AM 매크로가 작업을 수행하는지, 또는 좋은 예를 어디에서 얻을 수 있는지 알려주십시오.

+0

문제의 성격을 잘 모르겠습니다. 동일한 빌드에서 여러 호스트 유형에 대한 구성 요소를 빌드해야하는 이유는 무엇입니까? 도우미 만 * 빌드 *를지지합니까? 아니면 설치할 수있는 패키지 조각입니까? –

+0

@john 네, 맞습니다. 이러한 도우미 프로그램은 빌드에만 사용되며 대상에는 설치하지 않습니다. 힌트에 대해 –

답변

1

다른 실행 호스트에 대해 다른 부분을 빌드해야하는 경우 빌드 도구를 별도로 빌드하는 것이 가장 깨끗한 방법입니다. 연결된 답변 중 하나가이를 수행하는 방법을 설명합니다. 그러나 잘 작성된 Autotools 빌드 시스템을 사용하는 경우 소스 외부 빌드를 활용하여 다르게 대응할 수 있습니다. 이 스크립트를 작성할 수 있습니다.

도구를 빌드 할 디렉터리를 만듭니다. 해당 디렉토리에서 빌드 시스템 (path-to-source-dir/configure)을 구성한 다음 필요한 도구를 빌드하십시오. 그런 다음 소스 디렉토리 또는 다른 소스 외부 빌드 디렉토리에서 적절한 --build--host 세 개를 configure으로 지정하여 교차 편집을 구성하고 이미 빌드 된 도구를 빌드 디렉토리에 복사하거나 링크하여 나머지 작업을 수행하십시오 빌드의.

빌드 시스템이 특히 조심스럽게 만들어진 경우 다른 호스트의 빌드 도구에 대한 다른 실행 확장에 대한 조항을 극복해야 할 수도 있습니다. 이 작업을 수행해야하고 어쨌든 2 단계 크로스 컴파일을 스크립팅하려는 경우 도구를 복사/링크 할 때 문제를 처리 할 수 ​​있습니다. 핵심 빌드 시스템에 특별한 지원을 할 필요가 없습니다.

configure.acAC_CANONICAL_BUILDAC_CANONICAL_HOST 매크로를 사용한다, 일반적으로 크로스 컴파일을 지원하기 위해, 그리고 빌드 머신은 적절한 크로스 컴파일 툴 체인이 설치되어 있어야합니다.

+0

고마워.) –

관련 문제