首页 > 解决方案 > 使用 LLVM 时的链接器错误

问题描述

我正在尝试使用 LLVM 构建编译器后端,但我陷入了链接器错误。目前我试图做的只是包括 LLVMContext.h (我正在做IBM 教程),但这给了我以下链接器错误:

$ g++ -o compiler *.o -L/home/jakob/llvm2/lib/*.a -lantlr4-runtime
BayesBaseListener.o:(.data.rel+0x0): undefined reference to `llvm::DisableABIBreakingChecks'
collect2: error: ld returned 1 exit status
Makefile:2: recipe for target 'compiler' failed
make: *** [compiler] Error 1

知道如何正确配置 LLVM 以免发生这种情况吗?

标签: c++compiler-constructionllvmllvm-irllvm-c++-api

解决方案


选项-L是添加链接器用于搜索库的路径。选项-l(小写 L)是告诉链接器与特定库链接。

但是,对于您的情况,如果您想链接特定位置的所有静态库,只需将库文件列为输入文件:

g++ -o compiler *.o /home/jakob/llvm2/lib/*.a -lantlr4-runtime

请注意,我不使用该-L选项。


推荐阅读