C++ 为什么将CMake作为外部项目构建ParMETIS会给我带来这个错误?

C++ 为什么将CMake作为外部项目构建ParMETIS会给我带来这个错误?,c++,cmake,metis,C++,Cmake,Metis,我想使用CMake中的ExternalProject_Add来构建ParMETIS,但在构建过程中出现了一个错误 我已经成功地构建了其他具有此功能的库,并且没有太多问题。我尝试过CMake版本3.10.2、3.10.3和3.11.1,但都给出了相同的错误 cmake_minimum_required(VERSION 3.10.2) include(ExternalProject) set(LIB_EXT ${CMAKE_CURRENT_SOURCE_DIR}/../external) set(

我想使用CMake中的ExternalProject_Add来构建ParMETIS,但在构建过程中出现了一个错误

我已经成功地构建了其他具有此功能的库,并且没有太多问题。我尝试过CMake版本3.10.2、3.10.3和3.11.1,但都给出了相同的错误

cmake_minimum_required(VERSION 3.10.2)

include(ExternalProject)
set(LIB_EXT ${CMAKE_CURRENT_SOURCE_DIR}/../external)
set(BUILD_EXT ${LIB_EXT}/builds)

set(PARMETIS_ROOT ${BUILD_EXT}/parmetis)
ExternalProject_Add(external_parmetis
  URL http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-4.0.3.tar.gz
  URL_HASH SHA256=f2d9a231b7cf97f1fee6e8c9663113ebf6c240d407d3c118c55b3633d6be6e5f
  PREFIX ${PARMETIS_ROOT}
  SOURCE_DIR ${LIB_EXT}/parmetis-4.0.3
  BUILD_IN_SOURCE ON
  DOWNLOAD_DIR ${LIB_EXT}
  CONFIGURE_COMMAND make config
  BUILD_COMMAND make
  INSTALL_COMMAND ""
  )

配置步骤可以工作,但是在构建所有目标之后,我会得到一个错误。我认为这个“s”目标不是真正的目标

[100%] Built target pometis
make[5]: *** No rule to make target `s'.  Stop.
make[4]: *** [all] Error 2

ExternalProject的下载和配置阶段似乎已经成功。您可以导航到build目录(
${LIB_EXT}/parmetis-4.0.3
),自己键入
make
。验证该项目的手动构建是否成功。是的,使用命令“make”手动构建成功可能是,当从内部
make
调用parmetis的Makefile时,该Makefile工作错误。。。顺便说一句,您可以始终在主项目上运行
make VERBOSE=1
,以查看用于构建外部项目的实际命令。