Я пытаюсь реализовать свой игрушечный язык программирования с LLVM в качестве бэкэнда.
Я пытаюсь сгенерировать файлы .o
, используя эти API для инициализации:
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargets();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllAsmParsers();
llvm::InitializeAllAsmPrinters();
Вот часть моего CMakeLists.txt:
find_package(LLVM REQUIRED CONFIG)
llvm_map_components_to_libnames(llvm_libraries analysis support core object irreader executionengine scalaropts instcombine orcjit runtimedyld)
add_executable(shepherdc ${SOURCE_FILE})
target_include_directories(shepherdc ${LLVM_INCLUDE_DIRS})
target_link_libraries(shepherdc ${llvm_libraries})
Это дает мне сообщение об ошибке:
Undefined symbols for architecture x86_64:
"_LLVMInitializeAArch64AsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeAArch64AsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeAArch64Target", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeAArch64TargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeAArch64TargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeAMDGPUAsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeAMDGPUAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeAMDGPUTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeAMDGPUTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeAMDGPUTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeARMAsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeARMAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeARMTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeARMTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeARMTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeBPFAsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeBPFAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeBPFTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeBPFTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeBPFTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeHexagonAsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeHexagonAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeHexagonTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeHexagonTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeHexagonTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeLanaiAsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeLanaiAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeLanaiTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeLanaiTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeLanaiTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeMSP430AsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeMSP430AsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeMSP430Target", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeMSP430TargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeMSP430TargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeMipsAsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeMipsAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeMipsTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeMipsTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeMipsTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeNVPTXAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeNVPTXTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeNVPTXTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeNVPTXTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializePowerPCAsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializePowerPCAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializePowerPCTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializePowerPCTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializePowerPCTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeRISCVAsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeRISCVAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeRISCVTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeRISCVTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeRISCVTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeSparcAsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeSparcAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeSparcTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeSparcTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeSparcTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeSystemZAsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeSystemZAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeSystemZTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeSystemZTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeSystemZTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeWebAssemblyAsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeWebAssemblyAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeWebAssemblyTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeWebAssemblyTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeWebAssemblyTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeX86AsmParser", referenced from:
llvm::InitializeAllAsmParsers() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeX86AsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeX86Target", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeX86TargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeX86TargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeXCoreAsmPrinter", referenced from:
llvm::InitializeAllAsmPrinters() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeXCoreTarget", referenced from:
llvm::InitializeAllTargets() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeXCoreTargetInfo", referenced from:
llvm::InitializeAllTargetInfos() in libshepherd.a(IrWriter.cpp.o)
"_LLVMInitializeXCoreTargetMC", referenced from:
llvm::InitializeAllTargetMCs() in libshepherd.a(IrWriter.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang-10: error: linker command failed with exit code 1 (use -v to see invocation)
На какую дополнительную библиотеку LLVM мне следует связать?