当我使用命令“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'
我认为我没有正确链接“llvm库”,所以我该怎么做?
答案 0 :(得分:4)
您需要告诉编译器从哪里加载库,这可以使用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)
答案 1 :(得分:1)
您是否尝试使用g ++进行链接?这些是C ++库,gcc不会将C ++库传递给链接器。