【问题标题】:How to set up basic openMP project in CLion [duplicate]如何在 CLion 中设置基本的 openMP 项目 [重复]
【发布时间】:2017-03-24 16:28:26
【问题描述】:

我正在尝试在CLion IDE 中运行简单的OpenMP 程序。 当我运行它时,我得到一个错误:

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

这是我的代码:

#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;
}

这是我的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()

这是我的工具链的屏幕:

我对@9​​87654329@ 的经验为零,并且我是C++ 的初学者程序员,所以请给我一些解释如何设置我的项目。

【问题讨论】:

    标签: c++ cmake mingw openmp clion


    【解决方案1】:

    所以过了一会儿我想通了。我将 CmakeLists.txt 更改如下:

    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})
    

    我需要通过TDM-GCC installer 安装openmp。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-09
    • 2020-04-29
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 2019-12-29
    • 1970-01-01
    相关资源
    最近更新 更多