欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > mac 上使用 cmake 构建包含 OpenMP 的项目

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

2025/6/18 17:34:03 来源:https://blog.csdn.net/weixin_42877425/article/details/143243235  浏览:    关键词: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"' >> ~/.zshrcsource ~/.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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词