2011-12-22 2 views
7

Я пытаюсь создать Clang на Linux (Amazon's EC2). Я бег сделайте согласно руководству по адресу:Ошибка при создании Clang

http://clang.llvm.org/get_started.html

Я получаю следующее сообщение об ошибке ссылки:

llvm[2]: Linking Debug+Asserts executable opt 
/home/ec2-user/benchmark/build/tools/opt/Debug+Asserts/opt.o: In function `llvm::ParseIR(llvm::MemoryBuffer*, llvm::SMDiagnostic&, llvm::LLVMContext&)': 
opt.cpp:(.text._ZN4llvm7ParseIREPNS_12MemoryBufferERNS_12SMDiagnosticERNS_11LLVMContextE[llvm::Pars eIR(llvm::MemoryBuffer*, llvm::SMDiagnostic&, llvm::LLVMContext&)]+0x5f): undefined reference to `llvm::ParseBitcodeFile(llvm::MemoryBuffer*, llvm::LLVMContext&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)' 
collect2: ld returned 1 exit status 
make[2]: *** [/home/ec2-user/benchmark/build/Debug+Asserts/bin/opt] Error 1 
make[2]: Leaving directory `/home/ec2-user/benchmark/build/tools/opt' 
make[1]: *** [opt/.makeall] Error 2 
make[1]: Leaving directory `/home/ec2-user/benchmark/build/tools' 
make: *** [all] Error 1 

Кто-нибудь знает, что это значит?

Edit: Я перестроил весь проект из SVN, и теперь я получаю следующее сообщение об ошибке:

COMPILE: clang_linux/asan-i386/i386: /home/ec2-user/benchmark/llvm/projects/compiler-rt/lib/asan/asan_rtl.cc 
/home/ec2-user/benchmark/llvm/projects/compiler-rt/lib/asan/asan_rtl.cc:28:10: fatal error: 'new' file not found 
#include <new> 
     ^
1 error generated. 
make[5]: *** [/home/ec2-user/benchmark/build/tools/clang/runtime/compiler-rt/clang_linux/asan-i386/i386/SubDir.lib__asan/asan_rtl.o] Error 1 
make[5]: Leaving directory `/home/ec2-user/benchmark/llvm/projects/compiler-rt' 
make[4]: *** [BuildRuntimeLibraries] Error 2 
make[4]: Leaving directory `/home/ec2-user/benchmark/build/tools/clang/runtime/compiler-rt' 
make[3]: *** [compiler-rt/.makeall] Error 2 
make[3]: Leaving directory `/home/ec2-user/benchmark/build/tools/clang/runtime' 
make[2]: *** [all] Error 1 
make[2]: Leaving directory `/home/ec2-user/benchmark/build/tools/clang' 
make[1]: *** [clang/.makeall] Error 2 
make[1]: Leaving directory `/home/ec2-user/benchmark/build/tools' 
make: *** [all] Error 1 
+0

Вы строите с автотюшками или с cmake? –

+0

Когда я попытался построить на Windows, я использовал cmake в соответствии с инструкциями, но это тоже не сработало. Теперь я делаю это в Linux и просто использую команду configure, а затем make в соответствии с шагом (5). Я не уверен, что такое автотюшки? – user265445

ответ

2

Я последовал this, и я был в состоянии построить его успешно в самом первом выстреле.

Я думаю, вы сталкиваетесь с проблемами с C++ standard library headers. Таким образом, вы должны следовать Step #6 в вышеупомянутой ссылке!

Начните новую сборку и убедитесь, что вы удовлетворяете this обязательным условием.

+0

Я начал сначала, а затем шаг № 6, и я все еще получаю вторую ошибку, о которой я упоминал в своем вопросе (я также отредактировал вопрос, чтобы добавить полный текст второго сообщения об ошибке). Любые другие идеи о том, что я могу делать неправильно? – user265445

+0

на шаге 7, появляется следующее сообщение об ошибке: Требуется CMake 2.8.12.2 или выше. Вы используете версию 2.8.12 Я попробовал модернизировать cMake, но система не распознает это. – Junchen