如何设置 OpenMP?

How to set up OpenMP?

我正在使用 Codeblocks 并且必须 运行 一个 OpenMP C 程序。因此,我在 Codeblocks(编译器设置)中添加了标志 -fopenmp,现在收到错误消息 'mingw32-g++.exe: error: libgomp.spec: No such file or directory'

所以在网上搜索了一下错误后,我下载了 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: 没有那个文件或目录

这有多种可能的原因:您没有使用编译器安装 OpenMP,或者您在 Code::Blocks 配置中出错。无论如何,通过以下步骤,您应该能够修复它。您似乎在 Windows 上工作,但我还在 Linux.

上添加了关于如何做的评论

1) 您将需要 OpenMP 附带的 编译器 。对于 Windows download TDM-GCC 最好是 64 位可执行文件(第二个文件)并 安装 它。确保在组件选项卡中 select OpenMP: Components > gcc (TDM current: ....) > OpenMP (the最后一个条目)。 Linux 已经带有 GCC,所以只需打开命令行并通过在终端中键入 sudo apt-get install libomp-dev 来获取 OpenMP。

2) 您现在必须在 Code::Blocks 中 配置编译器:转至 设置 > 编译器 在选定的编译器下select GNU GCC 编译器 并单击 复制 并为新编译器输入一个方便的名称,例如 TDM- GCC 编译器。转到 工具链可执行文件 并浏览所有 程序文件 的目录(C 编译器、C++ 编译器、Linkers、调试器、资源compiler, Make) 如果您选择默认安装,您应该能够在 Windows 机器上的 C:\TDM-GCC-64\ ...\bin 中找到它们.我无法告诉您确切的子目录,因为我在 Linux 机器上工作,但您应该能够很容易地找到它。根据您的安装,可能有两个文件夹用于 32 位和 64 位。对于 Linux,此步骤不是必需的。

4) 然后你需要设置Linker settings。这可以通过在上述菜单中执行以下步骤为所有项目(我不推荐)完成,或者通过单击 项目 > 构建选项 为您当前的项目完成。转到相应配置(DebugRelease)的Linker settings并单击Link 库 下添加。在 Windows 机器上,您需要浏览名为 libgomp-1.dll(32 位)或 libgomp_64-[ 的文件=82=](64 位),它应该与上述 Program files 位于同一文件夹中。在 Linux 下选择 -lgompOther linker options.

3) 通过转至 编译器设置 > 其他编译器选项 并在其中输入 -fopenmp.

4) 用像 OpenMP "Hello World".

这样的程序测试它