我正在尝试使用 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/