我应该如何链接到 LLVM 库?

kun*_*nou 3 llvm clang

当我使用命令“ gcc .. ../../*.so”时,出现以下错误信息:

/usr/bin/ld: /home/demonwnb/build/src/*.so: error: undefined reference to 'llvm::raw_ostream::operator<<(void const*)'
/usr/bin/ld: /home/demonwnb/build/src/*.so: error: undefined reference to 'clang::DeclarationName::printName(llvm::raw_ostream&) const'
Run Code Online (Sandbox Code Playgroud)

我认为我没有正确链接“llvm library”,那我该怎么办?

Che*_*ath 5

您需要告诉编译器从何处加载库,这可以使用 llvm-config 命令完成。

您可以在 makefile 中设置以下符号

CC = g++

LLVM_MODULES = core jit native

CPPFLAGS = `llvm-config --cppflags $(LLVM_MODULES)`
LDFLAGS = `llvm-config --ldflags $(LLVM_MODULES)`
LIBS = `llvm-config --libs $(LLVM_MODULES)`

all:
    $(CC) *.o $(LDFLAGS) $(LIBS) -o MyOutput
main:
    find -name '*.cpp' -print0 | xargs -0 $(CC) -c $(CPPFLAGS)
Run Code Online (Sandbox Code Playgroud)