【问题标题】:Getting OpenMP running in Code::Blocks让 OpenMP 在 Code::Blocks 中运行
【发布时间】:2013-11-28 07:10:14
【问题描述】:

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

我在“Compiler->Toolchain exectuable->Additional Paths”中有 C:\Program File (x86)\Codeblocks\MinGW\gcc\mingw32\bin

编译时出现错误:“ld.exe: cannot find -lpthread”

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

谢谢!

【问题讨论】:

    标签: c openmp codeblocks


    【解决方案1】:

    链接器抱怨缺少库。 pthreads 是实现线程接口的库,OpenMP 实现使用该接口来执行所有线程操作。

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

    干杯, -迈克尔

    【讨论】:

    • 看来 pthreads 是一个 unix 库,不适用于 windows。我会看看能不能找到它的包装器,或者别的什么。
    • pthread 库应该是 MinGW 发行版的一部分。请查看您安装 MinGW 的存储库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    相关资源
    最近更新 更多