我正在尝试使用 cygwin 将 llvm 从 Windows 交叉编译到类似 x86 架构的 Linux。我正在使用 cygwin 的 windows cmake,因为我在使用 cygwin cmake 时遇到了一些路径问题。我面临以下错误,
make[3]: *** No rule to make target 'NATIVE/bin/llvm-min-tblgen.exe', needed by 'include/llvm/TargetParser/RISCVTargetParserDef.inc'. Stop.
make[2]: *** [CMakeFiles/Makefile2:6501: include/llvm/TargetParser/CMakeFiles/RISCVTargetParserTableGen.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:15989: tools/llc/CMakeFiles/llc.dir/rule] Error 2
make: *** [Makefile:4648: llc] Error 2
你能建议一些方法来解决这个问题吗?
交叉编译 NATIVE/bin/llvm-min-tblgen.exe 是使用主机系统的编译器本地生成的,在我的例子中,它使用交叉编译器本身,因此它生成 NATIVE/bin/llvm-min-tblgen导致搜索.exe失败。所以我的解决方法是使用 VS Code 生成原生组件,然后将它们添加到适当的目录中。