在 OS X 上使用 CMake 编译 OpenMP 程序
Compile an OpenMP program with CMake on OS X
我有一个非常简单的 openmp hello world 程序,如下所示:
#include <stdio.h>
#include <omp.h>
int main()
{
#pragma omp parallel
{
int id = omp_get_thread_num();
printf("hello, from %d.\n", id);
}
return 0;
}
我可以用 gcc-5 -fopenmp hello.c -o hello.o
在我的终端编译它
但是我想在 CLion 中编写代码,它使用 CMake 来组织项目,当我单击 运行 按钮时,我会得到一个错误
fatal error: 'omp.h' file not found
#include <omp.h>
我确实在 google 中进行了搜索,并在我的 CMakeLists.txt 文件中添加了一些内容
这是我的 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.3)
project(openmp)
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()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fopenmp")
set(SOURCE_FILES hello.c omp.c)
add_executable(openmp ${SOURCE_FILES})
您的代码是 C,而不是 C++,因此不要更改 CMAKE_CXX_FLAGS
,而是更改 CMAKE_C_FLAGS
:
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp")
并将您的 C 编译器设置为 gcc-5:
set(CMAKE_C_COMPILER /your/path/to/gcc-5)
要了解 gcc-5 路径,请在终端中键入 which gcc-5
另请参阅:How to specify new gcc path for cmake
我有一个非常简单的 openmp hello world 程序,如下所示:
#include <stdio.h>
#include <omp.h>
int main()
{
#pragma omp parallel
{
int id = omp_get_thread_num();
printf("hello, from %d.\n", id);
}
return 0;
}
我可以用 gcc-5 -fopenmp hello.c -o hello.o
但是我想在 CLion 中编写代码,它使用 CMake 来组织项目,当我单击 运行 按钮时,我会得到一个错误
fatal error: 'omp.h' file not found
#include <omp.h>
我确实在 google 中进行了搜索,并在我的 CMakeLists.txt 文件中添加了一些内容
这是我的 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.3)
project(openmp)
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()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fopenmp")
set(SOURCE_FILES hello.c omp.c)
add_executable(openmp ${SOURCE_FILES})
您的代码是 C,而不是 C++,因此不要更改 CMAKE_CXX_FLAGS
,而是更改 CMAKE_C_FLAGS
:
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp")
并将您的 C 编译器设置为 gcc-5:
set(CMAKE_C_COMPILER /your/path/to/gcc-5)
要了解 gcc-5 路径,请在终端中键入 which gcc-5
另请参阅:How to specify new gcc path for cmake