首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows上使用MinGW安装/启用OpenMP?

如何在Windows上使用MinGW安装/启用OpenMP?
EN

Stack Overflow用户
提问于 2015-09-06 02:31:16
回答 1查看 1.1K关注 0票数 0

在继续学习C++的过程中,我尝试使用MinGW工具链在Eclipse (C/C++ Mars 4.5.0)中启用OpenMP。我只想说,我不知道该怎么做。在项目设置中向C/C++编译器选项添加-fopenmp标志是不够的。我尝试使用GNU Make Builder编译并运行OpenMP提供的以下测试代码:

代码语言:javascript
复制
#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());
}

Eclipse会显示出以下内容:

代码语言:javascript
复制
Building file: ../OpenMPTest.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -fopenmp -MMD -MP -MF"OpenMPTest.d" -MT"OpenMPTest.d" -o "OpenMPTest.o" "../OpenMPTest.cpp"
../OpenMPTest.cpp: In function 'int main()':
../OpenMPTest.cpp:14:23: error: expected '#pragma omp' clause before 'printf'
  #pragma omp parallel printf("Hello from thread %d, nthreads %d\n", omp_get_thread_num(), omp_get_num_threads());
                       ^
../OpenMPTest.cpp:15:1: error: expected primary-expression before '}' token
 }
 ^
make: *** [OpenMPTest.o] Error 1

这给我一种(可能是不正确的)印象,认为Eclipse找不到OpenMP库。

因此,在我搞砸任何无法修复的东西之前,我想知道我是否可以获得一个关于如何使用MinGW在Eclipse项目中安装和启用OpenMP的分步指南。

EN

回答 1

Stack Overflow用户

发布于 2015-09-06 17:40:41

不要在#pragma行中放置任何不应该存在的内容。#pragma行是预处理器的指令,您的printf代码不应该在那里。

您的main()应该如下所示

代码语言:javascript
复制
int main()
{
    #pragma omp parallel
    {
        printf("Hello from thread %d, nthreads %d\n", omp_get_thread_num(), omp_get_num_threads());
    }
    return 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32416419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档