在CMake中查找第三方库

时间:2016-12-01 12:24:26

标签: build cmake

我正在尝试链接到第三方库。

我用:

制作/安装第三方库
svn co https://svn.company.nl/svn/eigen3/trunk eigen 
mkdir eigen/build
cd eigen/build
cmake -G "MinGW Makefiles" ..
mingw32-make -j3
mingw32-make install

默认情况下将库安装到

<CMAKE_INSTALL_PREFIX>/<INCLUDE_INSTALL_DIR>

使用以下默认值:

CMAKE_INSTALL_PREFIX: C:/Program Files (x86)/Eigen3
INCLUDE_INSTALL_DIR:  include/eigen3

接下来,我有很多项目要使用这个库。幸运的是,该库提供了一个FindEigen3.cmake文件,所以我应该可以在我的cmake文件中执行此操作:

set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
Find_Package(Eigen3)

如果有效,我就不会在这里。 Find_Package找不到Eigen3。 FindEigen3.cmake包含:

find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library
    HINTS
    ENV EIGEN3_ROOT 
    ENV EIGEN3_ROOT_DIR
    PATHS
    ${CMAKE_INSTALL_PREFIX}/include
    ${KDE4_INCLUDE_DIR}
    PATH_SUFFIXES eigen3 eigen
  )

我已经设定:

set EIGEN3_ROOT="C:/Program Files (x86)/Eigen3"
set EIGEN3_ROOT_DIR="C:/Program Files (x86)/Eigen3/include/eigen3" 
然而,我仍然找不到我的图书馆。我已经证实了这一点 C:\Program Files (x86)\Eigen3\include\eigen3\signature_of_eigen3_matrix_library存在,所以我很困惑为什么Find_Package()找不到我的库。另外,我更喜欢能够在不设置环境变量的情况下执行此操作,因为我需要为使用我的库的人保持这个简单,以便他们可以简单地cmake .. & make并且我将处理它们的所有依赖项

我在linux或cygwin中这样做没有问题。这是Windows环境让我感到高兴。

0 个答案:

没有答案