Компиляция программы с openMP с CLION на Windows - PullRequest
0 голосов
/ 13 марта 2019

Я скачал openMP, используя cygwin, который я использую в качестве компилятора в CLION.

Я включил

#include <omp.h>

и использовал его схемы, например,

#pragma omp paraller
        #pragma omp single

однако, когда я использую omp_get_max_threads(), он выбрасывает

неопределенная ссылка на `omp_get_max_threads '

ошибка, я попытался добавить аргументы компилятора: enter image description here

Но ошибка остается прежней. Есть ли способ как это исправить? Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Я не пользователь CLION, но являются ли Программные аргументы действительно аргументами для компилятора для вашего скомпилированного кода?

Обычно, при компиляции исходного файла OpenMP, флаг -fopenmp необходимо добавлять как к компилятору, так и к компоновщику. Так, например:

gcc -fopenmp -c foo.c -o foo.o
gcc -fopenmp -c bar.c -o bar.o
gcc -fopenmp -o app.exe foo.o bar.o

Или, если вы объедините и создадите ссылку, используя только один исходный файл:

gcc -fopenmp -c fooc -o app.exe

PS: Опечатка должна быть #pragma omp parallel вместо #pragma omp paraller.

0 голосов
/ 13 марта 2019

CLion использует CMake в качестве системы сборки, поддержка OpenMP была значительно улучшена в CMake 3.9 + . Теперь вам нужно настроить файл CMakeLists.txt следующим образом:

Например, рассмотрим пример кода ниже.

OpenMP код

#include <iostream>
#include <omp.h>

int main()
{
#pragma omp parallel num_threads(3)
    {
        int id = omp_get_thread_num();
        std::cout << "Greetings from process " << id << std::endl;
    }
    std::cout << "parallel for ends " << std::endl;
    return EXIT_SUCCESS;
}

CMakeLists.txt

Файл CMakeLists.txt будет выглядеть так:

cmake_minimum_required(VERSION 3.9)
project(openmp_test) # you can change the project name

find_package(OpenMP)

add_executable(openmp_para_test main.cpp)

if(OpenMP_CXX_FOUND)
    target_link_libraries(openmp_para_test PUBLIC OpenMP::OpenMP_CXX)
endif()

Если вы не знакомы с CMake, Вот краткое руководство по использованию CMake с CLion .

...