2013-08-28 14 views
7

Muszę używać LLVM i Clang dla klasy kompilatorów, do których się zapisałem. Nie jest to kwestia dotycząca zawartości klasy, a jedynie sposobu zainstalowania wymaganego oprogramowania.Instalowanie Clang/LLVM/Ubuntu

Korzystam z wersji gcc 4.6.3 i pobrałem, zbudowałem, przetestowałem i zaktualizowałem wersję LLVM w wersji 3.4 (najnowszą wersję svn). Zrobić prosty "Hello World" aplikacji, jak podano na LLVM podręczny stronę, ale na linii

lli helloworld.bc 

pojawia się błąd "LLI: helloworld.bc: Nieprawidłowy zapis MODULE_CODE_GLOBALVAR"

I Jestem kompletnym początkującym z tymi rzeczami, więc nie wiem, czy dałem ci wszystko, co jest potrzebne, aby naprawić mój błąd, daj mi komentarz, jeśli potrzebujesz czegoś innego. Proszę również podać mi jak najdokładniejsze instrukcje ... Zostałem wrzucony do świata Ubuntu i Clanga bez żadnych instrukcji i nie mogę znieść innego "rozwiązania", które mówi "przeczytaj strony podręcznika".

Dziękuję bardzo za pomoc. Po prostu chcę ustawić tę konfigurację, abym mógł przynajmniej spróbować odrabiać zadania domowe.

EDIT :: Oto instrukcje DOKŁADNĄ wpadłem w terminalu, z czego 99% zostało podjęte bezpośrednio ze strony internetowej LLVM:

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 

THEN

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

i że ostateczną linię , lli hello.bc, jest tam, gdzie dostaję powyższy błąd.

Ta pierwsza grupa instrukcji wykonała BALĘ do ukończenia. Coś zdecydowanie zainstalowanego/zbudowanego/zrobiłem coś. Ale nie mam pojęcia, co się tutaj naprawdę dzieje.

Więc tutaj są moje wielkie pytania:

1) jaki jest zainstalowany na moim komputerze? Powinienem mieć zainstalowany Clang i LLVM, prawda?

2) Wszystko, co powiedział mój profesor brzmiało: "Będziemy używać klang i musisz uzyskać LLVM w wersji 3.3 lub późniejszej Czy jestem nawet na dobrej drodze? Jeśli nie, to co mam zrobić, aby uzyskać LLVM 3.3? tylko szczegółowy przewodnik znalazłem na stronie LLVM prowadzą mnie do problemu wyszczególnionego powyżej

+0

Należy podać więcej szczegółów na temat, w jaki sposób zbudowany LLVM (co często pakuje się w większości dystrybucji systemu Linux, można po prostu 'aptitude install clang llvm'). I można zapytać, że na listach dyskusyjnych LLVM. –

+1

można edytować pytanie o szczegóły, jak dokładnie, wygenerowany na „helloworld.bc” plik? Ponadto, może być zainteresowany w tym powiązanej [pytanie] (http://stackoverflow.com/questions/8717868/compile-assemble-and-disassemble-using-the-llvm-tool-chain). – Oak

Odpowiedz

8

po wpisaniu.

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

Użyłeś systemu clang wykonywalny, który jest w /usr/bin/clang, a nie jest clang, który właśnie zbudowałeś. Oba mają inną wersję: lli jednak jest właśnie utworzony lli - Ubuntu nie jest z tym kompatybilny. Oznacza to, że wygenerowałeś plik .bc ze starszą wersją LLVM, a następnie próbowałeś go uruchomić z nowszą wersją LLVM, stąd problem.

Aby to sprawdzić, możesz sprawdzić, którego używasz clang, wpisując which clang do konsoli.

Najprostszym sposobem zaradzenia temu jest wpisanie ./clang (lub dowolnej innej ścieżki, która nie jest tylko nazwą pliku) zamiast clang, co zmusza powłokę do wybrania pliku w bieżącym katalogu.