如何详细配置CLion以支持并优化OpenMP多线程编程功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计416个文字,预计阅读时间需要2分钟。
使用MinGW64在Clion中配置openMP的开发流程如下:
1. 安装MinGW64和CLion。
2.在CLion中创建或打开项目。
3.在项目的`CMakeLists.txt`文件中添加以下配置:
cmake
cmake_minimum_required(VERSION 3.10)project(MyProject)set(CMAKE_CXX_STANDARD 14)
添加MinGW64编译器set(CMAKE_C_COMPILER /usr/bin/gcc)set(CMAKE_CXX_COMPILER /usr/bin/g++)
启用openMPset(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fopenmp)
4. 保存`CMakeLists.txt`文件,并运行CMake生成项目配置。
5.编写并编译你的代码,openMP将被自动使用。
使用MinGW64在Clion中配置openMP的开发 安装MinGW64和CLion配置CMakeList.txtCLion 2020.2.3
Build #CL-202.7319.72, built on September 18, 2020
对openMP编译制导的格式问题踩坑
下载
MinGW64
CLion
创建工程,配置CMakeList.txt
cmake_minimum_required(VERSION 3.17) project(openMP C) set(CMAKE_C_STANDARD 99) add_executable(openMP main.c) # openMP 配置 FIND_PACKAGE(OpenMP REQUIRED) if (OPENMP_FOUND) message("OPENMP FOUND") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") endif ()
编写openMP并行的demo
#include <stdio.h> #include <omp.h> int main(int argc, char **argv) { #pragma omp parallel { int id = omp_get_thread_num(); printf("%d\n", id); if (id == 3) { printf("我是三号线程、、、"); } } return 0; }
运行就可以看到
#pragma omp parallel { int id = omp_get_thread_num(); printf("%d\n", id); if (id == 3) { printf("我是三号线程、、、"); } }
CLion踩的坑
本来以为配置好了之后,就可以愉快的进行学习了,结果一直报错,错误是Expected expression,就在int的位置,我当时真的是想不明白,原来是因为在#pargma omp parallel 这句编译制导语句后面不能直接写那个花括号,只能另起一行,难搞哦,另起了一行之后,可以运行了,但是这个IDE的提示还有些瑕疵,如下所示
到此这篇关于详解CLion配置openMP的方法的文章就介绍到这了,更多相关CLion配置openMP内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!
本文共计416个文字,预计阅读时间需要2分钟。
使用MinGW64在Clion中配置openMP的开发流程如下:
1. 安装MinGW64和CLion。
2.在CLion中创建或打开项目。
3.在项目的`CMakeLists.txt`文件中添加以下配置:
cmake
cmake_minimum_required(VERSION 3.10)project(MyProject)set(CMAKE_CXX_STANDARD 14)
添加MinGW64编译器set(CMAKE_C_COMPILER /usr/bin/gcc)set(CMAKE_CXX_COMPILER /usr/bin/g++)
启用openMPset(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fopenmp)
4. 保存`CMakeLists.txt`文件,并运行CMake生成项目配置。
5.编写并编译你的代码,openMP将被自动使用。
使用MinGW64在Clion中配置openMP的开发 安装MinGW64和CLion配置CMakeList.txtCLion 2020.2.3
Build #CL-202.7319.72, built on September 18, 2020
对openMP编译制导的格式问题踩坑
下载
MinGW64
CLion
创建工程,配置CMakeList.txt
cmake_minimum_required(VERSION 3.17) project(openMP C) set(CMAKE_C_STANDARD 99) add_executable(openMP main.c) # openMP 配置 FIND_PACKAGE(OpenMP REQUIRED) if (OPENMP_FOUND) message("OPENMP FOUND") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") endif ()
编写openMP并行的demo
#include <stdio.h> #include <omp.h> int main(int argc, char **argv) { #pragma omp parallel { int id = omp_get_thread_num(); printf("%d\n", id); if (id == 3) { printf("我是三号线程、、、"); } } return 0; }
运行就可以看到
#pragma omp parallel { int id = omp_get_thread_num(); printf("%d\n", id); if (id == 3) { printf("我是三号线程、、、"); } }
CLion踩的坑
本来以为配置好了之后,就可以愉快的进行学习了,结果一直报错,错误是Expected expression,就在int的位置,我当时真的是想不明白,原来是因为在#pargma omp parallel 这句编译制导语句后面不能直接写那个花括号,只能另起一行,难搞哦,另起了一行之后,可以运行了,但是这个IDE的提示还有些瑕疵,如下所示
到此这篇关于详解CLion配置openMP的方法的文章就介绍到这了,更多相关CLion配置openMP内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

