gpt4 book ai didi

c++ - 显式链接 intel icpc openmp

转载 作者:太空狗 更新时间:2023-10-29 21:34:36 25 4
gpt4 key购买 nike

我在以下 $HOME/tpl/intel 安装了 intel 编译器。当我编译启用了 openMP 的简单 hello_omp.cpp

#include <omp.h>
#include <iostream>

int main ()
{
#pragma omp parallel

{
std::cout << "Hello World" << std::endl;
}
return 0;
}

我使用 ~/tpl/intel/bin/icpc -O3 -qopenmp hello_omp.cpp 编译,但是当我运行时出现以下错误:./a.out:加载共享库时出错:libiomp5.so:无法打开共享对象文件:没有这样的文件或目录

我想在 make 过程中显式链接英特尔编译器和适当的库而不使用 LD_LIBRARY_PATH

最佳答案

对于您的问题,您有 2 个简单的解决方案:

  1. 与英特尔运行时库静态链接:
    ~/tpl/intel/bin/icpc -O3 -qopenmp -static_intel hello_omp.cpp
    • 优点:您不必关心英特尔运行时环境在您运行二进制文件的机器上的安装位置,甚至不需要完全安装它;
    • 缺点:您的二进制文件变得更大并且不允许选择不同的(理想情况下更新的)运行时环境,即使它可用也是如此。
  2. 使用链接器选项 -rpath 将动态库的搜索路径添加到二进制文件中:
    ~/tpl/intel/bin/icpc -O3 -qopenmp -Wl,-rpath=$HOME/tpl/intel/lib/intel64 hello_omp.cpp
    注意使用 -Wl, 将选项传输给链接器。
    我想这更像是您所追求的,而不是我提出的第一个解决方案,所以我让您设计比较对您有利和不利的地方。

关于c++ - 显式链接 intel icpc openmp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45909648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com