cmake g ++ - 5:c ++ 11和OpenMP支持

时间:2015-07-22 21:25:35

标签: c++11 cmake openmp

在Mac上,我安装了g ++

brew install gcc --without-multilib 然后我在/usr/local/bin

中安装了g ++ - 5

编译器支持OpenMP和c ++ 11

以下代码按预期编译并运行:

#include <iostream>     
int main(int argc, const char **argv)           
{                  
   auto i = 42;
    int arr[] = {1,2,3,4,5};
    for(int& e : arr) 
    {
          e = e*e;
    }
    #pragma omp parallel                     
    {                          
        std::cout << "Hello OpenMP!\n";         
    }                             
    return 0;                            
}

编译:

g++-5 -fopenmp -std=c++11 omp_code.cpp -o omp_executable

然而,

cmake -DCMAKE_CXX_COMPILER=g++-5 -DCMAKE_C_COMPILER=gcc-5 ..

告诉我Could NOT find OpenMP (missing: OpenMP_CXX_FLAGS)

The compiler /usr/local/bin/g++-5 has no C++11 support

对于OpenMP我使用FIND_PACKAGE(OpenMP)而对于c ++ 11,我使用

include(CheckCXXCompilerFlag)                                        
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
  CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)

知道如何解决这个问题吗?即使检查失败,解决方法也只是放置c ++ 11和-fopenmp标志。这工作得很好。但是,我想有一个更好的解决方案。

0 个答案:

没有答案