在LLVM中链接libgomp.so

时间:2015-11-19 14:29:35

标签: compilation clang llvm libgomp

我使用LLVM使用parseInputIR(inputIR)函数读取IR文件;编译它们并执行它们类似于llvm的Kaleidoscope示例中所做的。 但是,当这样做时,我收到错误,该错误导致omp_get_num_procs不知道如下

  

clang / bin / Kaleidoscope-Orc-fully_lazy_with_recompile_try prime_toy / main.bc prime_toy / prime_number.bc   LLVM错误:程序使用外部函数' omp_get_num_procs'哪个无法解决!

其中一个IR文件包含omp指令,因此必须与omp库链接。我应该使用dlsym。

在llvm中添加这个支持

我的问题是关于libgomp版本 - 我想我需要使用来自llvm(http://openmp.llvm.org/)的openmp库 但是我没有看到omp_get_num_procs(只有带后缀的那些),我想知道为什么。

private void Log(string s)
{

    string file = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf('\\'));
    file += "\\logs\\";
    if (!Directory.Exists(file))
        Directory.CreateDirectory(file);
    file += DateTime.Now.Date.Year.ToString();
    file += "-" + DateTime.Now.Date.Month.ToString();
    file += "-" + DateTime.Now.Date.Day.ToString();
    file += (".log");
    FileStream fs = new FileStream(file, FileMode.Append);
    StreamWriter sw = new StreamWriter(fs);

    sw.WriteLine(DateTime.Now.Hour.ToString("00")+ ":" +
                 DateTime.Now.Minute.ToString("00") + ":" +
                 DateTime.Now.Second.ToString("00") + " " + s);
    sw.Close();
    fs.Close();
}

1 个答案:

答案 0 :(得分:0)

您所看到的后缀(以&#34开头; @")适用于ELF符号版本控制,https://sourceware.org/binutils/docs/ld/VERSION.html,您很可能不必关心特别是,所以你可以在精神上“脱掉它们”#34;。