gpt4 book ai didi

c - OpenMP 无效控制谓词 - 持久

转载 作者:行者123 更新时间:2023-11-30 19:24:28 28 4
gpt4 key购买 nike

当我尝试使用 gcc 编译带有 -fopenmp 标志的 C 代码时,我已经持续收到此错误超过 6 小时了。

错误:控制谓词无效 for ( int i = 0; i < N; i++ )

我浏览了 stackoverflow,并精简了我的代码,直到它是 OpenMP 手册中示例的精确副本,但它仍然无法编译。

#include <stdio.h>
#include <math.h>
#ifdef _OPENMP
#include <omp.h>
#endif

int main(int argc, char *argv[]) {
double N; sscanf (argv[1]," %lf", &N);
double integral = 0.0;

#pragma omp parallel for reduction(+: integral)
for ( int i = 0; i < N; i++ )
integral = integral + i;

printf("%20.18lf\n", integral);
return 0;
}

有什么建议吗?

最佳答案

找到了,抱歉,困惑了..

对于像我这样的所有其他 C 新手:错误出现在双 N 中。OpenMP 希望您的循环运行对 INTEGER N 的操作,而不是 double N。

关于c - OpenMP 无效控制谓词 - 持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60262176/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com