安装了要来源的特征cmake目标点包括但不安装
installed eigen cmake target points to source include and not installed include
我从github安装了eigen3主分支,并通过:
安装cmake ../eigen -DCMAKE_INSTALL_PREFIX=../install
make install
输出
-- Installing: /home/jeff/workspace/eigen/install/share/eigen3/cmake/Eigen3Targets.cmake
-- Installing: /home/jeff/workspace/eigen/install/share/eigen3/cmake/UseEigen3.cmake
-- Installing: /home/jeff/workspace/eigen/install/share/eigen3/cmake/Eigen3Config.cmake
-- Installing: /home/jeff/workspace/eigen/install/share/eigen3/cmake/Eigen3ConfigVersion.cmake
-- Installing: /home/jeff/workspace/eigen/install/include/eigen3/Eigen/Cholesky
...
然后,我通过以下方式在另一个项目中消耗了安装的eigen3 cmake目标:
find_package(Eigen3 CONFIG REQUIRED
PATHS "/home/jeff/workspace/eigen/install/share/eigen3/cmake")
add_executable(foo foo.cpp)
target_link_libraries(foo Eigen3::Eigen)
但这为foo提供了eigen源标题(/home/jeff/workspace/eigen/eigen(,而不是安装的源头(/home/jeff/jeff/workspace/eigen/enstall/install/include/eigen3(。
这是eigen中的错误还是我错过了什么?
这是由于构建特征添加了此文件(请参阅此处(:
jeff@jeff-laptop:~$ cat ~/.cmake/packages/Eigen3/2668cceac18b59405e572a6fd3cffc86
/home/jeff/workspace/eigen/build
因此,find_package
会找到指向特征源标头而不是已安装的eigen构建配置(不指定任何额外的搜索路径(。
构建项目时,我可以添加-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON
,以便find_package
不调查〜/.cmake/packages。
不确定为什么eigen会创建此文件或使用什么使用,但至少它们现在按预期工作。
相关文章:
- 在Ubuntu 16.04上安装Cilk时出现问题
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- C++A*算法并不总是在路径中具有目标节点
- CMake "安装" 目标及其 SO 依赖项
- 在命名空间中安装目标
- 如何将随ExternalProject_Add一起安装的库添加到目标包含
- 如何为在 x86 主机上为 arm 目标交叉编译的项目安装依赖项
- 如何安装私下链接到接口库的目标
- 导出(安装)的 cmake 目标是否可分发?
- 在QT中的大型项目中指定构建/目标/安装路径
- 安装了要来源的特征cmake目标点包括但不安装
- 致命错误LNK1112:在 npm 安装期间,模块计算机类型'X86'与目标计算机类型'x64'冲突
- CMake 安装具有相对路径的目标
- 如何让CMAKE安装目标PDB文件
- CMAKE安装目标给定没有存档目的地
- 使用qmake将dll安装到2个目标(路径)中
- 安装目标依赖项
- 安装前请检查目标目录的权限
- qmake:将 uic 生成的头文件添加到安装目标