Compilation CMake项目中的自定义MPI路径
我正在构建一个使用MPI的项目 这是CMakeLists.txtCompilation CMake项目中的自定义MPI路径,compilation,cmake,mpi,Compilation,Cmake,Mpi,我正在构建一个使用MPI的项目 这是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
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()
为了启用这段代码,我要传递什么参数给cmake
我的MPI安装在自定义路径中,例如/path/to/MPI
我是简单地将MPI路径添加到$path并运行
cmake.
还是应该设置一个标志,就像我们设置-DCMAKE\u INSTALL\u前缀:path
告诉CMakesFindMPI
关于自定义安装一样,确保自定义的mpicc
和mpicxx
位于$PATH
中就足够了。或者,您也可以这样提供:
cmake -DMPI_C_COMPILER=/path/to/bin/mpicc -DMPI_CXX_COMPILER=/path/to/bin/mpicxx
CMake将根据编译器包装器选择其余部分。但是,您不应将CMAKE\u C\u编译器
/CMAKE\u CXX\u编译器
设置为MPI编译器包装器。相反:
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的目标类似。要告诉CMakes
FindMPI
有关自定义安装的信息,只需确保您的自定义mpicc
和mpicxx
位于$PATH
中即可。或者,您也可以这样提供:
cmake -DMPI_C_COMPILER=/path/to/bin/mpicc -DMPI_CXX_COMPILER=/path/to/bin/mpicxx
CMake将根据编译器包装器选择其余部分。但是,您不应将CMAKE\u C\u编译器
/CMAKE\u CXX\u编译器
设置为MPI编译器包装器。相反:
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目标类似