【发布时间】:2015-04-28 06:53:54
【问题描述】:
我正在尝试使用 cmake 通过 MPI 编译 C++ 代码。在 CMakeLists.txt 我有:
find_package(MPI)
以后
if(MPI_FOUND)
MESSAGE("{MPI_C_LIBRARIES}")
target_link_libraries(test ${MPI_C_LIBRARIES})
endif(MPI_FOUND)
我已经安装了 OpenMPI。我第一次运行 cmake 时得到:
-- 找到 MPI_CXX: /usr/local/lib/libmpi_cxx.dylib;/usr/local/lib/libmpi.dylib
和一个应该打印 MPI_C_LIBRARIES 的空行。如果我尝试这样做,它不会链接到 MPI 库并给出错误。但是,如果我第二次运行 cmake,我会正确收到消息:
/usr/local/lib/libmpi_cxx.dylib;/usr/local/lib/libmpi.dylib
它链接到图书馆就好了。所以总而言之,我必须运行 cmake 两次以确保 MPI_C_LIBRARIES 已设置。有谁知道这是正常的还是我做错了什么?
【问题讨论】: