如何在Windows的eigen3中启用pkg-config支持?

时间:2018-12-02 10:34:42

标签: cmake eigen3 pkg-config

我正在编译一个第三方库,该库使用以下命令来查找Eigen3:

find_package( PkgConfig )
pkg_check_modules( EIGEN3 REQUIRED eigen3 )
include_directories(${EIGEN3_INCLUDE_DIRS})

find_package( PkgConfig )命令正确运行,因为我指定了PKG_CONFIG_EXECUTABLE变量。但是pkg_check_modules( EIGEN3 REQUIRED eigen3 )返回错误:

  

-检查模块'eigen3'

     

-未找到软件包“ eigen3”

Eigen3的official webpage说:“不需要使用CMake或安装任何东西。”我花了很长时间才意识到这个说法是错误的。因此,我运行以下命令来编译并安装Eigen3(版本3.3.5):

cmake -DCMAKE_CONFIGURATION_TYPES=Release -DCMAKE_INSTALL_PREFIX=E:\3rd-parties\eigen-3.3.5\install_ -G"Visual Studio 14 2015 Win64" ..

编译和安装过程均成功,因为我没有在VS2015中看到任何故障。但是,当我回到第3方库的build文件夹并再次运行cmake时,我得到了完全相同的错误。 Eigen3 official website仅使用find_package提供了一条指令,但没有提供pkg-config.exe,因此我接下来搜索Google并找到了此thread。答案说我们需要“在eigen3 cmake中启用pkg-config支持”。我不知道如何启用它。为此有任何特定的CMake变量吗?由于这是一个新问题,Eigen's main page说:“要获得帮助,stackoverflow是您的最佳资源。”所以我来这里寻求帮助。我的问题是:如何在eigen3中启用pkg-config支持?或者换一种说法:如何传递pkg_check_modules( EIGEN3 REQUIRED eigen3 ) cmake命令?非常感谢。

PS:我正在Windows 10上工作。

1 个答案:

答案 0 :(得分:1)

根据Eigen3 sources,选项EIGEN_BUILD_PKGCONFIGpkg-config的支持负责。

在Windows上,整个选项都被禁用,但是您可以尝试设置它:

cmake -DEIGEN_BUILD_PKGCONFIG=ON <... other arguments>

在CMake脚本中使用pkg-config查找Eigen3时,请确保CMAKE_PREFIX_PATH变量中列出了Eigen3的安装目录。 (如果项目使用的CMake版本低于3.1,则需要另外将PKG_CONFIG_USE_CMAKE_PREFIX_PATH设置为ON,以使pkgconfig模块使用变量CMAKE_PREFIX_PATH。请参见pkgconfig模块中的documentation。)