如何设置OpenMP?

时间:2019-10-24 04:49:30

标签: c mingw openmp codeblocks tdm-gcc

我正在使用代码块,并且必须运行OpenMP C程序。因此,我在代码块(编译器设置)中添加了标志-fopenmp,现在出现错误“ mingw32-g ++。exe:错误:libgomp.spec:没有这样的文件或目录

因此,在互联网上对错误进行了一些搜索之后,我下载了TDM-GCC(安装在C:\ TDM-GCC-64中)。但是在代码块上仍然显示相同的错误。

我在做什么错了?

以下是构建日志:

mingw32-gcc.exe -c“ D:\ Language Files \ MatrixMultiplication.c” -o“ D:\ Language Files \ MatrixMultiplication.o”

mingw32-g ++。exe -o“ D:\ Language Files \ MatrixMultiplication.exe”“ D:\ Language Files \ MatrixMultiplication.o” -fopenmp

mingw32-g ++。exe:错误:libgomp.spec:没有这样的文件或目录

1 个答案:

答案 0 :(得分:0)

有多种可能的原因:您未在编译器中安装OpenMP,或者在Code :: Blocks配置中出错。无论如何,请执行以下步骤,您应该可以修复它。您似乎在Windows上工作,但我还添加了有关如何在Linux上进行操作的说明。

1)您将需要OpenMP随附的编译器。对于Windows download TDM-GCC,最好是64位可执行文件(第二个文件)并安装。确保在组件选项卡中选择 OpenMP Components> gcc(TDM当前:..)> OpenMP (最后一个条目)。 Linux已经附带了GCC,因此只需打开命令行并在终端中键入 sudo apt-get install libomp-dev 即可获得OpenMP。

2)您现在必须在Code :: Blocks 中配置编译器:转到“选定的编译器”下的“ <设置>编译器” ,然后选择“ GNU GCC编译器” em>,然后单击 Copy ,然后为新的编译器(如 TDM-GCC编译器)输入一个方便的名称。转到工具链可执行文件,并浏览所有程序文件(C编译器,C ++编译器,链接器,调试器,资源编译器,Make)的目录,您应该能够找到它们如果选择默认安装,请在Windows计算机上的 C:\ TDM-GCC-64 \ ... \ bin 中。在Linux机器上工作时,我无法告诉您确切的子目录,但您应该可以轻松找到它。根据您的安装,可能有两个32位和64位文件夹。对于Linux,此步骤不是必需的。

4)然后,您需要设置链接器设置。可以通过上述菜单中的以下步骤对所有项目(我不建议这样做)或单击 Project> Build options 对您当前的项目进行此操作。转到相应配置( Debug Release )的链接器设置,然后单击链接库下的添加 。在Windows计算机上,您需要浏览名为 libgomp-1.dll (32位)或 libgomp_64-1.dll (64位)的文件,该文件应为与上述程序文件位于同一文件夹中。在Linux下,改为在其他链接器选项下选择 -lgomp

3)通过转到编译器设置>其他编译器选项设置编译器标志 -fopenmp (对于所有项目或仅用于当前项目) em>并在那里输入-fopenmp。

4)使用OpenMP "Hello World"之类的程序对其进行测试。