首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMake项目中的自定义MPI路径

CMake项目中的自定义MPI路径
EN

Stack Overflow用户
提问于 2017-03-27 19:13:30
回答 1查看 1.2K关注 0票数 0

我正在构建一个使用MPI的项目。

这是CMakeLists.txt

代码语言:javascript
复制
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_INSTALL_PREFIX:PATH一样

EN

回答 1

Stack Overflow用户

发布于 2017-03-27 19:55:47

要告诉CMakes FindMPI有关自定义安装的信息,只需确保您的自定义mpiccmpicxx位于$PATH中就足够了。或者,您也可以这样提供:

代码语言:javascript
复制
cmake -DMPI_C_COMPILER=/path/to/bin/mpicc -DMPI_CXX_COMPILER=/path/to/bin/mpicxx

CMake将根据编译器包装器获取其余部分。但是,您不应该将CMAKE_C_COMPILER CMAKE_CXX_COMPILER /设置为MPI编译器包装器。相反:

代码语言:javascript
复制
include_directories(SYSTEM ${MPI_INCLUDE_PATH})

对于每个C++目标:

代码语言:javascript
复制
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目标类似。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43054602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档