无法从三重目标获得

时间:2019-05-03 06:54:22

标签: c# compilation llvm llvm-ir target-platform

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主体并显示以下错误:“此三元组不兼容任何目标。”

感谢您的任何帮助!

0 个答案:

没有答案