0

我已经安装了一个名为metis的外部库,它位于我系统的“/usr/local/opt/”中,我想将此库链接到我现有的 make 项目,这似乎很困难。我在 stackoverflow 上尝试了一些参考链接,但它们似乎不起作用。

我的 CMakeLists.txt 看起来像这样:

project(Multi)

cmake_minimum_required (VERSION 2.6)

find_package(CGAL QUIET COMPONENTS Core )
  include( ${CGAL_USE_FILE} )

  include_directories (BEFORE "/include")
  include_directories (BEFORE "/dt")

find_package(MPI)
  include_directories(SYSTEM ${MPI_INCLUDE_PATH})
  SET(CMAKE_C_COMPILER mpicc)
  SET(CMAKE_CXX_COMPILER mpicxx)
  SET(MPIEXEC_MAX_NUMPROCS "4" CACHE STRING "Maximum number of processors available to run MPI applications.")

find_package(METIS)
    include_directories("/usr/local/opt/metis/include")
    add_subdirectory("/usr/local/opt/metis/include/bin")

add_executable(example example.cpp)   

我试图通过使用 add_subdirectory 和 include_directories 标签来添加库的位置,但它们似乎不起作用。

对此的任何帮助将不胜感激。

4

1 回答 1

0

find_package()在一组预定义的目录中搜索库,/usr/local/opt很可能不在其中。在这种情况下,由于您已经知道库的位置,您可以知道find_package()在哪里查找它:

find_package(METIS REQUIRED PATHS /usr/local/opt/metis)

此外,add_subdirectory()仅当指定目录包含CMakeLists.txt. 仅当您想将库构建metis为构建过程的一部分,并且该目录是metis库的根目录并且它也使用 CMake 进行构建时,才需要此文件。如果你只有头文件和预编译库文件,那么你不需要这个。

于 2020-11-16T08:40:51.847 回答