提问人:Stoufa 提问时间:4/16/2017 最后编辑:Vladimir F Героям славаStoufa 更新时间:10/31/2023 访问量:2602
OpenMP 未定义对“_CRT_fenv”和“_setargv”的引用
OpenMP undefined reference to `_CRT_fenv' and `_setargv'
问:
我正在尝试运行这个简单的 OpenMP 示例:
#include <iostream>
#include <omp.h>
using namespace std;
int main()
{
switch(_OPENMP) {
case 200805:
cout << "OpenMP version 3.0 has macro value of 200805" << endl;
break;
case 200505:
cout << "OpenMP version 2.5 has macro value of 200505" << endl;
break;
default:
cout << "Unrecognized OpenMP version of " << _OPENMP << endl;
break;
}
return 0;
}
我收到两个错误:undefined reference to
c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../crt2.o:(.text+0x1ee): undefined reference to `_CRT_fenv'
c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../crt2.o:(.text+0x1fb): undefined reference to `_setargv'
collect2.exe: error: ld returned 1 exit status
我已经添加了链接库和其他编译器选项(顺便说一句,我正在使用 code::blocks )。libgomp-1.dll
-fopenmp
答:
3赞
Bob
11/11/2019
#1
我知道这是旧的,但我有同样的错误,并在寻找答案时发现了这篇文章,所以我怀疑我可能可以帮助其他人解决这个问题。
我怀疑问题出在安装了两个 MinGW 上。您是否安装了 Code::Blocks 的完整发行版,包括 MinGw?
错误引用“c:/mingw/...”我猜你做了一个单独的 MinGW 安装,它创建了那棵树。如果你让Code::Blocks也安装它,它可能会把它放在“some_path/CodeBlocks/MinGW/”中。
如果是这种情况(就像我一样),在 Code::Blocks 中,转到 Settings->Compiler...在打开的窗口中,打开“工具链可执行文件”选项卡,并将 MinGW 可执行文件的路径更改为 Code::Blocks 创建的安装路径。
评论
1赞
Stoufa
2/14/2020
嘿@Bob,感谢您的发帖。嗯,我不记得了,距离我上次使用 Windows 已经有一段时间了,我在大学期间使用它(不是我的选择),我现在是一个自由人,但是,我希望这个线程能帮助面临同样问题的人,再次感谢。🙂
1赞
smmehrab
1/29/2021
“我怀疑问题出在两个MinGW的安装上。” - 这正是我的问题所在。谢谢!
0赞
Kennedy Lam
10/31/2023
#2
正如 Bob 所说,原因是 MinGW 有两个安装版本,在我卸载之前安装的版本后,cFree 可以工作。
评论