我正在使用 LLVM c 绑定来编写编译器,当我尝试从默认目标三元组 (x86_64-pc-windows-msvc) 创建目标时,LLVM 表示没有注册目标。
llvm::InitializeNativeTarget();
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargets();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllAsmParsers();
llvm::InitializeAllAsmPrinters();
auto target_triple = llvm::sys::getDefaultTargetTriple();
std::string err; // unable to find target for this triple (no targets are registered)
auto target = llvm::TargetRegistry::lookupTarget(target_triple, err);
llvm::TargetRegistry::printRegisteredTargetsForVersion(llvm::outs()); // prints (none)
我已经从源代码构建 LLVM 并使用 LLVM_TARGETS_TO_BUILD=all 标志来启用所有目标。但是,当我调用 llc --help 时,会列出大量目标。那么为什么 llvm C++ 代码找不到目标呢?