天天看點

使用 Clion 編譯 openMP

使用 Clion 編譯 openMP

    • 1. 安裝 Gcc
    • 2. 設定 Clion 編譯器為自己下載下傳的 gcc
    • 3. 編輯項目的 `CMakeLists.txt`
    • 測試

1. 安裝 Gcc

這一步不說了,自己去官網下就好了。

如果是Mac使用者,因為MacOS預設有 GCC ,不過連結的是Clang編譯器,安裝了自己的GCC後,想在終端調用,需要使用

gcc-x

(x指版本),否則

gcc

指令使用的是 Clang 編譯器。如果想使用

gcc

調用自己安裝的GCC,可以看下面的解決辦法。

MacOS 切換 Clang 為 GCC

2. 設定 Clion 編譯器為自己下載下傳的 gcc

設定成你自己安裝的GCC

使用 Clion 編譯 openMP

3. 編輯項目的

CMakeLists.txt

添加以下内容:

FIND_PACKAGE(OpenMP REQUIRED)
if(OPENMP_FOUND)
    set(CMAKE_C_FLAGS "${OpenMP_C_FLAGS}")
endif()
           

測試

可以使用下面的代碼測試

#include <stdio.h>
#include <stdlib.h>
#include <omp.h>

void Hello(void);

int main(int argc, char* argv[]) {
   int thread_count = strtol(argv[1], NULL, 10); 

#  pragma omp parallel num_threads(thread_count) 
   Hello();

   return 0; 
}

void Hello(void) {
   int my_rank = omp_get_thread_num();
   int thread_count = omp_get_num_threads();

   printf("Hello from thread %d of %d\n", my_rank, thread_count);
}
           

繼續閱讀