我正在尝试链接到第三方库。
我用:
制作/安装第三方库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环境让我感到高兴。