c - 在 Code::Blocks 中运行 OpenMP

标签 c openmp codeblocks

我正在尝试使用 Windows 7 自学 OpenMP,但我很难让 Code::Blocks 编译基本的 hello world 程序:

#include <omp.h>
#include <stdio.h>
int main() 
{
    #pragma omp parallel
    printf("Hello from thread %d, nthreads %d\n", omp_get_thread_num(), omp_get_num_threads());
}

我已经取得了一些进展,但是仍然存在一个我无法消除的持续错误。

我的编译器中有 -fopenmp “编译器->编译器设置->其他选项”

我在“编译器->链接器设置->其他链接器选项”中有-gomp和-pthreads

我在“编译器->工具链可执行文件->其他路径”中有 C:\Program File (x86)\Codeblocks\MinGW\gcc\mingw32\bin

编译时出现错误:“ld.exe: 找不到 -lpthread”

有人可以建议我可能设置错误吗?

谢谢!

最佳答案

链接器提示缺少库。 pthreads 是实现线程接口(interface)的库,您的 OpenMP 实现使用该接口(interface)来执行所有线程处理工作。

该库在磁盘上称为“libpthread.a”(静态版本)和“libpthread.so”(动态版本)。尝试在 MinGW 目录下的文件系统中找到这两个。它们可能位于名为“lib”或“lib64”的目录中。如果缺少其中任何一个,那么您可能需要安装额外的软件包。

干杯, -迈克尔

关于c - 在 Code::Blocks 中运行 OpenMP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20251497/

相关文章:

fortran - GFortran 和 CodeBlocks 的模块和多个文件问题

c - 读取变量时出错,无法访问地址 X 的内存

c - C中变量名下划线前分号的可能原因

代码块 ".layout" ".depend"文件

c++ - OpenMP 循环中的索引是否按升序处理?

c++ - 引用类型上的 OpenMP 原子?

xaml - Xaml Visual Studio 2012 Metro 应用程序 Ctrl M、O 中的模拟热键用于折叠所有代码块

c - 在 OpenGL 中,我可以绘制一个恰好位于坐标 (5, 5) 的像素吗?

c - 左值需要作为带参数的宏赋值的左操作数

macos - 将 openmp (llvm) 与 sourceCpp 一起使用时找不到 math.h