Сборка с OpenMP

Для включения OpenMP нужно указать ключ компиляции.

Компиляция через командную строку

Компилятор
Ключ компиляции

msvc (компилятор от Microsoft Visual Studio)

/openmp

gcc и clang

-fopenmp

Пример компиляции кода из файла с исходным кодом main.c при помощи компилятора Clang под Windows

clang -O2 -fopenmp main.c -o lab.exe

Visual Studio

Свойства проекта (ПКМ по проекту в обозревателе проектов) - C/C++ - Language - OpenMP support - Yes. Во избежания проблем для начинающих рекомендуется выставлять Платформу и конфигурацию как All (подчеркнуто на скрине ниже).

Для того, чтобы счётчики цикла или другие более современные возможности OpenMP работали при использовании Visual Studio, следует в настройках компилятора добавить для всех конфигураций и всех платформ следующее:

/openmp:experimental  /openmp:llvm 

CMakeLists

OPTION (USE_OpenMP "Use OpenMP" ON)
IF(USE_OpenMP)
   FIND_PACKAGE(OpenMP)
   IF(OPENMP_FOUND)
       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
       SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
   ENDIF()
ENDIF()

Для владельцев Mac на ARM64 также может помочь set(CMAKE_OSX_ARCHITECTURES x86_64)

Last updated