我有CodeBlocks 12.11,mingw32 base(安装版本2013072200)(C语言)
在编译器设置中,我链接了:。。。\CodeBlocks\MinGW\bin\libgomp.dll。我添加了其他选项"-fopenmp"。
程序如下:
#include <stdio.h>
int main(){
#pragma omp parallel
{
printf("Hello World!n");
}
return 0;
}
我在Windows7x64上尝试了所有这些,但我似乎无法成功使用这个OpenMP,不知道我做错了什么,谷歌也无济于事。
尝试构建时的错误是:
-------------- Clean: Debug in Test (compiler: GNU GCC Compiler)---------------
Cleaned "Test - Debug"
-------------- Build: Debug in Test (compiler: GNU GCC Compiler)---------------
mingw32-gcc.exe -Wall -g -fopenmp -c C:UsersMStrankoDesktopPROJEKT444Testmain.c -o objDebugmain.o
mingw32-g++.exe -o binDebugTest.exe objDebugmain.o D:ProgramyCodeBlocksMinGWbinlibgomp-1.dll
Execution of 'mingw32-g++.exe -o binDebugTest.exe objDebugmain.o D:ProgramyCodeBlocksMinGWbinlibgomp-1.dll' in 'C:UsersMStrankoDesktopPROJEKT444Test' failed.
Nothing to be done (all items are up-to-date).
我是使用C的新手,甚至是使用OpenMP的新手(遗憾的是,我仍然被迫这样做)。如果我能得到任何帮助,我将不胜感激。
我记得第一次安装Code::Blocks时工作不正常。然而,我也使用一个简单但好的IDE是Dev-C++。
请不要使用Dev-C++。如果你看一下它的下载页面,你会发现它上次更新是在2005年!
CodeBlocks论坛提供了一个简单的解决方案::
我遇到了同样的问题:在C::B中,编译了一个小的OpenMP示例,但是获得了对"omp_get_num_threads"的未定义引用。我手动使用mingw-gcc编译并链接了该示例,但还可以++testOpenMP-cpp-o a.exe-fopenmp I然后手动编译并链接分别独立,
g++ testOpenMP.cpp -c -o testOpenMP.o -fopenmp
g++ testOpenMP.o -o a.exe (the same problem occurred.)
如果与-fopenmp链接,则可以。
结论:C::B执行了链接器来创建execute,而不是用-fopenmp链接选项。解决方案是将gomp添加到链接库
试试看:)