2012-12-24 4 views
29

저는 clang을 ARM 용 크로스 컴파일러 (./configure --target=armv7l-unknown-linux-gnueabihf으로 구성)로 사용하도록 컴파일했습니다. 그러나 C 코드를 컴파일하려고 시도하면 /usr/bin/as을 사용하려고 시도합니다. 이미 ARM 용으로 컴파일 된 binutils를 가지고 있으며, 이들은 별도의 디렉토리에 있습니다. 내가 지정한 어셈블러를 사용하도록 clang (또는 llvm)에 지시하려면 어떻게해야합니까?clang 용 사용자 정의 어셈블러는 어떻게 사용합니까?

+0

: 당신이 희망으로 구성 사용하고 있기 때문에

./configure --host=armv7l-unknown-linux-gnueabihf --build=i686-unknown-linux-gnu 

는 살펴 autotools를 안녕하세요 - 주위에 파일을 구성했는지 보겠습니다. ARM을 위해 어쨌든 어셈블러를 실행하는 대신 기계 코드 생성기를 사용해서는 안됩니까? '--integrated-as'를 지나치셨습니까? '-v'를 사용하여 예제 명령 행과 출력을 보여줄 수 있습니까? –

+0

필자의 configure 라인은 많은 도움이되지 않지만'../llvm/configure --target = mipsel-sde-elf --prefix =/some/prefix --enable-optimized'입니다. 이것은 잘 작동하고'/ some/prefix/mipsel-sde-elf-as'를 실행했습니다. 즉, 일반적으로 통합 어셈블러를 사용하므로 잠시 테스트하지 않았습니다. –

+0

@CarlNorum 또한 clang과 같은 폴더에 통합 어셈블러 (armv7l-unknown-linux-gnueabihf-llvm-as')가 있지만 여전히/usr/bin/as를 사용하고 있습니다. 나는'armv7l-unknown-linux-gnueabihf-llvm-as'가 내부적으로'/ usr/bin/as'를 호출하는지 확신하지 못합니다. – JosephH

답변

0

필자는 항상 ./configure를 사용하여 원본 디렉토리에서 구성하는 데 어려움을 겪었으며 결국 포기했습니다. 요즘은 항상 별도의 디렉토리 즉, .. 구성으로 구성합니다. 구성을 위해 절대 경로를 사용하는 것이 좋다고 들었습니다.

ARM binutils는 clang에 사용하는 것과 동일한 접두사에 설치하고 & build clang (예 : PATH =/some/prefix/bin : $ PATH)을 구성 할 때 경로에 있는지 확인해야합니다./configure --target = armv7l-unknown-linux-gnueabihf. 패키징 목적으로 별도의 디렉토리에 보관하는 경우 DESTDIR = install을 설치하십시오.

나는 일반적으로 연타를 구축하지 않습니다하지만 난 devkitARM에 사용하는 buildscripts 도움이 될 수있다 - http://sourceforge.net/p/devkitpro/buildscripts/ci/c372699fc7b4de90eb044314ce5bed04db640291/tree/

+0

죄송 합니다만 이전에 소스 디렉토리와 동일한 디렉토리에 clang을 구성 해 본 적이 없습니다. 필자가 질문에 포함시킨 명령은 간결성을 위해'--prefix' 플래그를 생략했습니다. CarlNorum의 주석에서 알 수 있듯이, 나는'--prefix' 플래그를 포함 시켰음을 알았지 만 여전히 저에게는 효과가 없었습니다. 이상한 것은 컴파일 과정이 실제로 bin이라는 (정확한 타겟 트리플과 함께) 폴더에 통합 된 어셈블러 바이너리를 생성하는 것처럼 보이지만 결코 사용하지 않는다는 것입니다. 나는 당신이 답안에 포함 시켰던 빌드 스크립트를 자세히 살펴볼 것입니다. – JosephH

2

모든 CC 아칸소 등 유틸리티 armv7l-와 접두사의 원인이되는 구성 --host 옵션을 전달 시도 알 - 리눅스 - gnueabihf- 예 : 나는이 최근 않았다 알고 automake Cross compiling

+0

나는 당신이 그 질문을 잘못 이해했다고 생각합니다. @JosephH는 clang을 사용하여 프로그램을 교차 컴파일하는 방법을 묻습니다.하지만 "clang 자체를 컴파일하는 방법"에 대한 답변이 필요합니다. –

관련 문제