C语言 CodeBlocks 12.11, MinGW



我有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添加到链接库

试试看:)

最新更新