当前位置: 首页 > article >正文

mac 上使用 cmake 构建包含 OpenMP 的项目

安装依赖

# clang 默认不支持 -fopenmp,因为它没有内置 OpenMP 支持。
# 为了解决这个问题,需要安装 libomp 并配置 clang 使用 libomp
brew install libomp

# macOS 自带的 clang 编译器被修改过,默认禁用了 OpenMP,
# 而不支持 -fopenmp 选项,因此无法直接进行多线程并行化编译。
# 安装 LLVM 后,可以获得一个完整的、支持 OpenMP 的 clang 编译器版本。
brew install llvm

配置

我的终端是 zsh,如果你的终端是 bash,你就要写进 ~/.bashrc

echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.zshrc
echo 'export cc="/opt/homebrew/opt/llvm/bin/clang"' >> ~/.zshrc
echo 'export cxx="/opt/homebrew/opt/llvm/bin/clang++"' >> ~/.zshrc
echo 'export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"' >> ~/.zshrc 
echo 'export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"' >> ~/.zshrc

source ~/.zshrc

CMakeLists.txt

我用 cmake 的 find_package(OpenMP REQUIRED)会有问题:
在这里插入图片描述

因此我直接手动指定相关的编译编译、链接路径、头文件路径了。

cmake_minimum_required(VERSION 3.28)
project(openmp_learn)

set(CMAKE_CXX_STANDARD 17)

include_directories(/opt/homebrew/opt/libomp/include)

add_executable(openmp_learn main.cpp)
target_compile_options(openmp_learn PRIVATE -Xpreprocessor -fopenmp)
target_link_libraries(openmp_learn PRIVATE /opt/homebrew/opt/libomp/lib/libomp.dylib)

参考

  • missing: OpenMP_C_FLAGS OpenMP_C_LIB_NAMES

http://www.kler.cn/a/370875.html

相关文章:

  • nginx 配置域名前缀访问 react 项目
  • 闪豆多平台视频批量下载器
  • 如何在Mac上使用Brew更新Cursor应用程序
  • 什么是基础镜像
  • 3.Qt Quick-QML地图引擎之v4.3版本(新增动态轨迹线/海图/天地图街道/天地图卫星)
  • Java中对list数据进行手动分页(可直接复用版)
  • 网络请求自定义header导致跨域问题
  • 「二叉树进阶题解:构建、遍历与结构转化全解析」
  • 【网络安全】红队人员的GPO和OU指南
  • 端口号和ip地址一样吗?区别是什么
  • [Linux] linux 软硬链接与动静态库
  • 芯片上音频相关的验证
  • 2024前端JS面试题总汇
  • 基于yolov8的布匹缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】
  • Cisco Packet Tracer 8.0 路由器的基本配置和Telnet设置
  • 《Linux系统编程篇》fork函数——基础篇
  • 基于SSM+小程序的童装商城管理系统(商城3)
  • 用Pyhon写一款简单的益智类小游戏——2048
  • 【338】基于springboot的IT职业生涯规划系统
  • Elasticsearch Serverless 高性价比智能日志分析关键技术解读
  • 数据库基础介绍
  • 构建最新的LLaMA-Factory镜像
  • HTML的常用标签
  • 使用virtualenv导入ssl模块找不到指定的模块
  • 单例模式 c++
  • stm32入门教程--DMA 超详细!!!