我正在编译一个第三方库,它使用以下命令查找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”包裹
特征3的官方网页说:“没有必要使用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中没有看到任何失败。但是,当我返回到第三方库的build文件夹并再次运行cmake时,我得到了完全相同的错误。Eigen3 官方网站只提供使用find_package的指令,而不是pkg-config.exe,所以接下来我搜索了find_package并找到了这个线程。答案是,我们需要“在eigen3 cmake中启用pkg-config支持”。我不知道怎么启用它。是否有特定的CMake变量用于此目的?因为这是一个新的问题,艾根主页说:“为了获得帮助,堆栈溢出是您最好的资源。”所以我来这里寻求帮助。我的问题是:如何在eigen3中启用pkg支持?或者换个说法:如何传递pkg_check_modules( EIGEN3 REQUIRED eigen3 ) cmake命令?非常感谢。
PS:我正在Windows 10上工作。
发布于 2018-12-02 14:42:41
根据Eigen3 资料来源,一个选项EIGEN_BUILD_PKGCONFIG负责pkg-config支持。
在Windows上,整个选项是禁用的,但是您可以尝试设置它:
cmake -DEIGEN_BUILD_PKGCONFIG=ON <... other arguments>使用pkg-config在CMake脚本中查找Eigen3时,请确保在CMAKE_PREFIX_PATH变量中列出了Eigen3的安装目录。(如果项目使用的CMake版本小于3.1,则需要另外将PKG_CONFIG_USE_CMAKE_PREFIX_PATH设置为ON,以便告诉pkgconfig模块使用变量CMAKE_PREFIX_PATH。请参阅文档 for pkgconfig模块中的更多内容。)
https://stackoverflow.com/questions/53579402
复制相似问题