【问题标题】:Undefined symbols for architecture x86_64 on Mac OS X when compiling using LLVM使用 LLVM 编译时 Mac OS X 上架构 x86_64 的未定义符号
【发布时间】:2014-09-01 20:13:21
【问题描述】:

我正在尝试使用 Mac OS X Yosemite 中提供的 LLVM 在此项目中制作编译器,并在 Github https://github.com/lsegal/my_toy_compiler/issues/17 上收到此问题中提到的以下错误

在运行make all 命令时,似乎会抛出一个错误:

Undefined symbols for architecture x86_64:
  "_LLVMInitializeX86Target", referenced from:
      llvm::InitializeNativeTarget() in main.o
  "_LLVMInitializeX86TargetInfo", referenced from:
      llvm::InitializeNativeTarget() in main.o
  "_LLVMInitializeX86TargetMC", referenced from:
      llvm::InitializeNativeTarget() in main.o

我发现这些都是在这个头文件/usr/local/include/llvm/Config/config.h中定义的

/* LLVM name for the native Target init function, if available */
#define LLVM_NATIVE_TARGET LLVMInitializeX86Target

/* LLVM name for the native TargetInfo init function, if available */
#define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo

/* LLVM name for the native target MC init function, if available */
#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC

我正在使用g++ 编译器构建它,并在使用llvm-g++ 编译器编译时出错。有谁知道问题是什么?我的 Mac 上是否未正确安装 LLVM?

~/Personal> llvm-g++ --version
dyld: Library not loaded: /usr/lib/libltdl.3.dylib
  Referenced from: /usr/local/bin/../../..//usr/local/llvm-gcc-install/bin/i686-apple-darwin8-g++-4.0.1
  Reason: image not found

编辑:

我还安装了 Xcode Beta 6,所以不确定这是否会影响 llvm-g++ 和使用 OS X Yosemite。

【问题讨论】:

    标签: llvm llvm-gcc llvm-ir


    【解决方案1】:

    可能忘记添加依赖库了。 添加这些并重试

    -lLLVMCore -lLLVMSupport -lLLVMJIT -lLLVMRuntimeDyld -lLLVMExecutionEngine -lLLVMCodeGen -lLLVMObjCARCOpts -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore -lLLVMSupport -lLLVMMCJIT -lLLVMJIT -lLLVMCodeGen -lLLVMObjCARCOpts -lLLVMScalarOpts -lLLVMInstCombine - lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMRuntimeDyld -lLLVMExecutionEngine -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore -lLLVMSupport -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMMCParser -lLLVMCodeGen -lLLVMObjCARCOpts -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMX86Desc -lLLVMX86Info - lLLVMTarget -lLLVMX86AsmPrinter -lLLVMMC -lLLVMObject -lLLVMX86Utils -lLLVMCore -lLLVMSupport

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-17
      • 2012-04-26
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 2012-08-20
      相关资源
      最近更新 更多