LLVM无法从三重目标中找到目标。我系统的默认三元组是“ i686-pc-win32”(我曾尝试将其更改为“ i686-pc-windows-msvc”,但仍然无法正常工作)。
我对更改三元组并没有真正的思考/发现,在任何地方,似乎我的人都在五年前通过简单地更改三元组解决了这个问题,但由于某种原因,它对我不起作用
除了更改三元组之外,我还确保验证模块(没问题),当我调用LLVM.PrintModuleToFile()
函数时,它会正确打印它(然后我可以使用llc和clang对其进行链接.cpp文件,但随后出现另一个错误,即“ A.obj:致命错误LNK1143:文件无效或损坏:COMDAT 0x5部分没有符号”。
var targetTriple = Marshal.PtrToStringAnsi(LLVM.GetDefaultTargetTriple());
//targetTriple = "i686-pc-windows-msvc";
if (LLVM.GetTargetTriple(targetTriple, out var target, out var err)) {
Console.WriteLine(err);
Console.ReadLine();
return;
}
运行此代码时,将输入if主体并显示以下错误:“此三元组不兼容任何目标。”
感谢您的任何帮助!