2017-03-27 9 views
0

私はMPIを使用するプロジェクトを構築しています。ここでCMakeプロジェクトのカスタムMPIパス

は、私はこのコードのブロックを有効にするために渡すんcmakeのに何の引数CMakeLists.txt

if(__OPENNN_MPI__)  
    find_package(MPI)  
     if(MPI_FOUND) 
     message("Using MPI") 
     set(CMAKE_CXX_COMPILER mpicxx) 
     set(CMAKE_C_COMPILER mpicc) 
     set(CMAKE_CXX_COMPILE_FLAGS "${CMAKE_CXX_COMPILE_FLAGS} ${MPI_COMPILE_FLAGS}") 
     set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} ${MPI_LINK_FLAGS}") 
     add_definitions(-D__OPENNN_MPI__) 
    endif() 
endif() 

です。

マイMPIのインストールがカスタムパスにあり、我々は-DCMAKE_INSTALL_PREFIX:PATH

を設定しますように、私は単に、私の$ PATHにMPIのパスを追加して cmake .を実行するか、私は設定する必要がありフラグがあります /path/to/MPI

を言います

答えて

1

CMakes FindMPIにカスタムインストールについて伝えるには、カスタムmpiccmpicxx$PATHであることを確認するだけで十分です。また、次のように指定することもできます。

CMakeはコンパイラのラッパーに基づいて残りの部分を選択します。ただし、は、MPIコンパイララッパーにCMAKE_C_COMPILER/CMAKE_CXX_COMPILERを設定しないでください。代わりに:

include_directories(SYSTEM ${MPI_INCLUDE_PATH}) 

そして、それぞれのC++の目標のために:同様

target_link_libraries(target ${MPI_CXX_LIBRARIES}) 
if(MPI_CXX_COMPILE_FLAGS) 
    set_target_properties(target PROPERTIES COMPILE_FLAGS "${MPI_CXX_COMPILE_FLAGS}") 
endif() 
if(MPI_CXX_LINK_FLAGS) 
    set_target_properties(target PROPERTIES LINK_FLAGS "${MPI_CXX_LINK_FLAGS}") 
endif() 

C目標。

関連する問題