我正在尝试运行这个简单的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
我已添加libgomp-1.dll
将librairies和-fopenmp
链接到其他编译器选项(顺便说一下,我正在使用code :: blocks)。
答案 0 :(得分:1)
我知道这很旧了,但是我遇到了同样的错误,并且在寻找答案的过程中发现了这篇文章,因此我怀疑我可以为其他人解决这个问题。
我怀疑问题出在两个MinGW的安装上。您是否安装了完整的Code :: Blocks发行版,包括MinGw?
错误引用“ c:/ mingw / ...”,我猜您是单独安装了MinGW,从而创建了该树。如果也让Code :: Blocks安装它,则可能会将其放在“ some_path / CodeBlocks / MinGW /”中。
如果是这种情况(对我而言),请在Code :: Blocks中,转到“设置”->“编译器...”,然后在打开的窗口中打开“工具链可执行文件”选项卡,并更改其路径。您的MinGW可执行文件将成为Code :: Blocks创建的安装路径。