提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
最近入坑了并行编程,开始捣鼓在Mac上如何配置OpenMP环境。网上的现有教程,大部分都是直接用原生的clang 编译器选项在终端来运行程序,缺乏一个可以在IDE中直接运行并自动管理的教程。曾经使用过Cmake构建系统来配置MLIR编译器基础框架。学以致用,将之前学习过的用CmakeList配置项目的知识迁移到搭建OpenMP环境中
前期准备
- Homebrew 软件包管理工具
- Clion IDE 集成开发软件
- Clang 编译器
配置步骤
可以直接跳转到文档 末尾
,查看正确的CmakeList.txt配置代码,忽略以下递进式的讲解步骤
使用Homebrew安装OpenMP第三方库
- 安装OpenMP第三方库,在终端中键入以下命令
brew install libomp
OpenMP 被安装在/usr/local/Cellar
的目录下
新建Clion工程项目
- 新建一个Clion工程项目,尝试引入omp.h的头文件。系统出现了一个未找到头文件的警告,因为macOS默认的编译器Clang版本没有内置对OpenMP支持
使用Cmake构建系统
- 编写CmakeLists 文件
CMakeLists 是用于管理 CMake 构建系统的文件,CmakeLists中详细地描述了项目构建和管理的指令。可以通过编写命令来自动地管理程序运行过程,不需要每次都键入编译器选项。首先需要使用find_package()自动检查当前系统的编译器是否支持OpenMP,并获取必要的编译选项。参考官网:FindOpenMP
修改CmakeLists.txt
中的内容:
cmake_minimum_required(VERSION 3.26)
project(ExOpenMP C)
set(CMAKE_CXX_STANDARD 14)
find_package(OpenMP REQUIRED)
if(OpenMP_C_FOUND)
include