2013-08-28 3 views
7

등록한 컴파일러 클래스에 LLVM 및 Clang을 사용해야합니다. 클래스 내용에 대한 질문이 아니며 필요한 소프트웨어를 설치하는 방법에 대한 질문이 아닙니다.Clang/LLVM/Ubuntu 설치

저는 gcc 버전 4.6.3을 실행 중이며 LLVM suite 버전 3.4 (최신 svn 에디션)로 생각되는 것을 다운로드, 빌드, 테스트 및 업데이트했습니다. 페이지를 시작하기 LLVM에 참조 된 나는, 간단한에 "Hello World"응용 프로그램을하지만 라인에

lli helloworld.bc 

나는 오류 얻을 "LLI : helloworld.bc : 잘못된 MODULE_CODE_GLOBALVAR 기록"

I을 이 물건으로 완전한 초보자입니다. 그래서 당신이 제 실수를 고치기 위해 필요한 모든 것을 당신에게 주 었는지, 당신이 다른 것을 알 필요가 있다면 코멘트를 남겨주세요. 또한 가능한 한 자세한 지침으로 저를 보내주십시오 ... 나는 지시없이 우분투와 Clang의 세계에 던져졌으며 "man 페이지를 읽으십시오"라는 또 다른 "해결책"을 읽지 않습니다.

도움을 주셔서 대단히 감사합니다. 나는 적어도이 숙제를 시험해 볼 수 있도록 준비하고 싶다. THEN

cd myFolder 
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm 
cd myFolder 
cd llvm/tools 
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang 
cd myFolder 
cd llvm/projects 
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt 
cd myFolder 
mkdir build 
cd build 
../llvm/configure --enable-optimized CC=/usr/bin/clang CXX=/usr/bin/clang++ 
make 
make check-all 
make update 

clang hello.c -o hello 
clang -03 -emit-llvm hello.c -c -o hello.bc 
lli hello.bc 

그리고 마지막 줄 : 여기에 편집 ::

정확한 LLVM의 웹 사이트에서 직접 찍은 99 % 어느 내가 터미널에서 실행 지침입니다 , lli hello.bc, 위의 오류가 발생합니다.

그 첫 번째 그룹의 명령은 완료하는 데 걸리는 시간이 길었습니다. 뭔가 확실하게 설치/구축/수행했습니다. 그러나 나는 여기서 정말로 무엇이 일어나고 있는지 전혀 모른다.

내 큰 질문은 여기에 있습니다.

1) 내 컴퓨터에는 어떤 항목이 설치되어 있습니까? 나는 Clang과 LLVM을 모두 설치해야합니다. 맞습니까?

2) 내 모든 교수는 "우리는 clang을 사용할 것이고, 당신은 3.3 버전의 LLVM을 가질 필요가 있습니다. 내가 옳은 길을 가고 있는가? 그렇지 않다면 LLVM 3.3을 얻으려면 어떻게해야할까요? 단지 나는 LLVM의 웹 사이트에 자세한 안내는 위에서 설명한 문제에 저를 이끌어

+0

LLVM을 빌드하는 방법에 대한 자세한 내용을 제공해야합니다 (대부분의 Linux 배포판에 패키지로 제공되며 간단히 'aptitude install clang llvm'이라고도 함). LLVM 메일 링리스트에서 요청할 수도 있습니다. –

+1

"helloworld.bc"파일을 생성 한 방법을 자세히 편집 할 수 있습니까? 또한 [이 관련 질문] (http://stackoverflow.com/questions/8717868/compile-assemble-and-disassemble-using-the-llvm-tool-chain)에 관심이있을 수 있습니다. – Oak

답변

8

를 입력 한 경우 :.

clang -03 -emit-llvm hello.c -c -o hello.bc 

당신은 /usr/bin/clang에있는 시스템의 clang 실행을 사용, 아닌 것입니다 두 가지 버전이 다릅니다. lli, 그러나, 당신이 방금 만든 입니다 - 우분투는 함께 제공되지 않습니다. 즉, 이전 LLVM 버전으로 .bc 파일을 생성 한 다음 최신 LLVM 버전으로 실행하려고 했으므로 문제가 발생했습니다.

확인하려면 콘솔에 which clang을 입력하여 사용중인 clang을 확인할 수 있습니다.

가장 쉬운 방법은 clang 대신 ./clang (또는 파일 이름이 아닌 다른 경로)을 입력하여 셸이 현재 디렉토리에서 파일을 선택하도록하는 것입니다.