Как я могу собрать LLVM и связать его с libС++?

Я пытаюсь собрать LLVM и связать его с libС++, но не могу заставить его работать. Я скачал последнюю версию (LLVM 3.2).

$ CXXFLAGS=-stdlib=libc++ LDFLAGS=-stdlib=libc++ ../llvm-3.2.src/configure
$ make
llvm[0]: Constructing LLVMBuild project information.
llvm[1]: Compiling APFloat.cpp for Release+Asserts build
llvm[1]: Compiling APInt.cpp for Release+Asserts build
(etcetera)
llvm[1]: Building Release+Asserts Archive Library libLLVMTableGen.a
llvm[2]: Compiling FileCheck.cpp for Release+Asserts build
llvm[2]: Linking Release+Asserts executable FileCheck (without symbols)
Undefined symbols for architecture x86_64:
  "std::string::find_last_not_of(char, unsigned long) const", referenced from:
      llvm::SMDiagnostic::print(char const*, llvm::raw_ostream&, bool) const in libLLVMSupport.a(SourceMgr.o)
  "std::string::copy(char*, unsigned long, unsigned long) const", referenced from:
      llvm::sys::Path::makeUnique(bool, std::string*) in libLLVMSupport.a(Path.o)
  "std::string::find(char const*, unsigned long, unsigned long) const", referenced from:
      llvm::sys::getDefaultTargetTriple() in libLLVMSupport.a(Host.o)
  "std::string::find(char, unsigned long) const", referenced from:
      llvm::sys::Program::FindProgramByName(std::string const&) in libLLVMSupport.a(Program.o)
(followed by a bunch of other related linker errors)

Завершите вывод на Gist.

LLVM прекрасно компилируется и линкуется с libstdc++, но не с libc++. Я понятия не имею, почему он не будет связан с libc++; другие программы просто нормально линкуются. Я использую OS X Mountain Lion, а libc++ находится в /usr/lib/libc++.1.dylib. Используемый компилятор — Apple clang версии 4.0 (tags/Apple/clang-421.0.60) (на основе LLVM 3.1svn).


person Community    schedule 16.03.2013    source источник


Ответы (1)


Поверьте, я не специалист в этой области. Но попробуйте это:

../llvm/configure --enable-libcpp

А вообще нашел:

../llvm/configure --help

довольно полезно.

person Howard Hinnant    schedule 16.03.2013
comment
--enable-libcpp сделал свое дело. Ты самый замечательный человек на планете. - person ; 16.03.2013
comment
Если вы не являетесь экспертом в этой области, то кто?? - person Steven Lu; 22.09.2014
comment
@StevenLu: я рекомендую поговорить с людьми на [email protected]. - person Howard Hinnant; 22.09.2014