在Windows中使用GNU gcc编译openmp失败

0mkxixxg  于 2023-10-19  发布在  Windows
关注(0)|答案(2)|浏览(370)

Windows 8 64位操作系统
我想尝试使用以下C代码来实现OpenMP功能:
hello.c程序

#include <stdio.h>
#include <stdlib.h>
#include<omp.h>

int main()
{
    #pragma omp parallel
    printf("Hello world!\n");
    return 0;
}

当我试图从命令提示符运行程序时,使用:gcc -fopenmp hello.c
我得到以下错误:

c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot fin
d -lpthread
collect2.exe: error: ld returned 1 exit status

我的路径中有C:\MinGWgcc 4.8.1
我错过了什么?

piah890a

piah890a1#

感谢osgx,
作为一个新手,我不明白这些pthreads是什么意思。但最终我找到了解决问题的办法。我从http://www.equation.com/servlet/equation.cmd?fa=fortran在我的机器上安装了gcc 4.8.2 64 bit。它改变了环境变量(在路径中)本身。完成安装后,我重新启动计算机,当我键入:

gcc -fopenmp hello.c

对于上面的代码在命令行中,代码工作。

h6my8fg2

h6my8fg22#

另一个技巧是使用docker container with gcc
步骤:
1.安装docker
1.在Docker终端中:docker pull gcc
1.然后运行一个终端并挂载一个主机文件夹,其中您的C脚本位于gcc容器中,方法是键入:docker run -it -v /hostfolder:/folderincontainer gcc /bin/bash
1.然后在终端中执行脚本。
这很简单。不需要担心操作系统的细节。

相关问题