How to set up an openMP base project in CLion

I am trying to run a simple OpenMP program in the CLion IDE . When I run it, I get an ERROR:

 CMakeFiles\openmp_test_clion.dir/objects.a(main.cpp.obj): In function `main': D:/.../openmp_test_clion/main.cpp:9: undefined reference to 'omp_get_thread_num' collect2.exe: error: ld returned 1 exit status 

Here is my code:

 #include <stdio.h> #include <omp.h> int main() { int id; #pragma omp parallel private(id) { id = omp_get_thread_num(); printf("%d: Hello World!\n", id); } return 0; } 

Here is my CMakeLists.txt :

 cmake_minimum_required(VERSION 3.6) project(openmp_test_clion) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(SOURCE_FILES main.cpp) add_executable(openmp_test_clion ${SOURCE_FILES}) message(STATUS "Checking OpenMP") find_package(OpenMP) IF(OPENMP_FOUND) message("Found OpenMP!) # add flags for OpenMP set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${OpenMP_SHARED_LINKER_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") ELSE() message("Missed OpenMP!") ENDIF() 

Here is the screen of my tools: enter image description here

I have no experience with OpenMP , and I'm a beginner programmer in C++ , so please give me a little explanation on how to set up my project.

+5
source share
1 answer

So, after a while I realized this. I modified CmakeLists.txt as follows:

 cmake_minimum_required(VERSION 3.6) project(openmp_test_clion) # added -fopenmp set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fopenmp") set(SOURCE_FILES main.cpp) add_executable(openmp_test_clion ${SOURCE_FILES}) 

And I needed to install openmp through the TDM-GCC installer .

+4
source

Source: https://habr.com/ru/post/1259548/


All Articles