Could not find .... following names:glogConfig.cmake glog-config.cmake

背景:

当我在用catkin_make 编译一个刚下载下来的库时候遇到:

  Could not find a package configuration file provided by "glog" with any of
  the following names:

    glogConfig.cmake
    glog-config.cmake

 我就去https://github.com/google/glog下载库,并且按照首页写的安装方法安装。发现问题没有解决。

 

解决办法:

用这个链接的安装方法:glog cmake 安装法

具体就是:

$ cd glog

$ cmake -H. -Bbuild -G "Unix Makefiles"

$ cmake --build build

$ cmake --build build --target test

$ sudo cmake --build build --target install

<think>我们正在处理一个CMake构建错误,具体是CMake找不到名为'absl'的包的配置文件。错误信息通常表现为:CMakeErrorat...(find_package):Couldnotfindapackageconfigurationfileprovidedby"absl"withanyofthefollowingnames:abslConfig.cmakeabsl-config.cmake根据引用[1][2][3]中类似问题的解决方案,我们可以采取以下步骤:1.确认absl库是否已经安装:用户需要确保absl库已经在系统中正确安装。如果尚未安装,则需要先安装absl。2.如果已经安装,那么需要告诉CMake在哪里找到absl的配置文件。可以通过以下两种方式之一:a)将absl的安装前缀添加到CMAKE_PREFIX_PATH环境变量或CMake变量中。b)设置absl_DIR变量指向包含absl配置文件的目录。3.检查absl的安装位置:通常,配置文件会安装在库的安装路径下的某个子目录中,例如`<prefix>/lib/cmake/absl`。用户需要确认该目录存在并且包含`abslConfig.cmake`或`absl-config.cmake`文件。4.如果使用ROS,注意ROS工作空间的配置:引用[4]提到,可以通过sourceROS工作空间的setup.sh文件来设置环境,这样ROS相关的包就可以被找到。如果absl是作为ROS工作空间的一部分构建的,那么需要确保已经source了对应工作空间的setup.sh文件。具体步骤:步骤1:安装absl如果尚未安装,可以从源代码构建并安装,或者使用系统包管理器安装(如果可用)。例如,在Ubuntu上,可以尝试:sudoapt-getinstalllibabsl-dev或者从源代码安装:gitclonehttps://github.com/abseil/abseil-cpp.gitcdabseil-cppmkdirbuildcdbuildcmake..makesudomakeinstall步骤2:设置CMake变量假设absl安装在标准路径(如/usr/local),那么CMake可能自动找到。如果安装在自定义路径,例如`/path/to/absl/install`,则需要在CMake命令中设置:cmake-DCMAKE_PREFIX_PATH=/path/to/absl/install...或者,如果知道包含配置文件的目录,例如`/path/to/absl/install/lib/cmake/absl`,则设置:cmake-Dabsl_DIR=/path/to/absl/install/lib/cmake/absl...步骤3:在CMakeLists.txt中查找包确保在CMakeLists.txt中正确调用find_packagefind_package(abslREQUIRED)然后链接到目标:target_link_libraries(your_targetabsl::baseabsl::synchronization...)#具体链接哪些absl库,根据需求步骤4:环境设置(特别是ROS工作空间)如果是在ROS环境中,确保已经source了工作空间的setup.sh,这样ROS会设置CMAKE_PREFIX_PATH包含工作空间的安装路径。注意:如果使用ROS,并且absl是作为ROS包安装的,那么通常不需要手动设置,因为ROS的setup.sh已经设置了CMAKE_PREFIX_PATH。但如果absl是单独安装的,则可能需要手动添加。如果以上步骤不能解决问题,可能需要检查absl的安装是否完整,或者查看absl的文档确认安装步骤。根据引用[2][3]中提到的,如果absl提供了单独的开发包,确保已经安装(例如,在Ubuntu中,可能需要安装-dev或-devel包)。总结:主要步骤为安装absl,然后通过设置CMAKE_PREFIX_PATH或absl_DIR来指示其配置文件的位置。</think>### CMake找不到absl包配置文件的解决方案 当CMake报告找不到absl包的配置文件时,通常表现为以下错误: ``` CMake Error: Could not find a package configuration file provided by "absl" with any of the following names: abslConfig.cmake absl-config.cmake ``` 此问题是由于CMake无法定位Abseil库(Google的开源C++基础库)的配置文件所致[^2][^3]。以下是系统化的解决方案: --- ### **解决步骤** 1. **确认absl安装状态** ```bash # 检查系统是否安装absl dpkg -l | grep libabsl-dev # Ubuntu/Debian rpm -qa | grep abseil-cpp # CentOS/RHEL ``` 如果未安装,选择以下方式之一安装: - **包管理器安装**(推荐): ```bash # Ubuntu 20.04+ sudo apt-get install libabsl-dev ``` - **源码编译安装**: ```bash git clone https://github.com/abseil/abseil-cpp.git cd abseil-cpp && mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. # 指定安装路径 make -j4 && sudo make install ``` 2. **配置CMake查找路径** 在`CMakeLists.txt`中添加路径声明(**任选一种**): ```cmake # 方法1:直接指定安装路径 set(absl_DIR "/usr/local/lib/cmake/absl") # 替换为实际路径 # 方法2:添加前缀路径 list(APPEND CMAKE_PREFIX_PATH "/usr/local") # 方法3:环境变量方式(终端执行) export CMAKE_PREFIX_PATH="/usr/local:$CMAKE_PREFIX_PATH" ``` 3. **在ROS环境中的特殊处理** 如果使用ROS,确保工作空间已正确配置[^4]: ```bash # 在终端执行(路径替换为实际工作空间) source /your/ros/workspace/devel/setup.bash ``` 4. **验证配置文件位置** 检查absl的配置文件是否存在于以下典型路径: ``` /usr/local/lib/cmake/absl/abslConfig.cmake /opt/homebrew/lib/cmake/absl/absl-config.cmake # macOS C:\Program Files\absl\lib\cmake\absl\absl-config.cmake # Windows ``` --- ### **常见问题排查** - **路径错误**:使用`find / -name "*absl*Config.cmake" 2>/dev/null`定位文件 - **版本冲突**:确保所有absl组件版本一致 - **ROS工作空间覆盖**:检查是否因多个ROS工作空间导致路径覆盖[^4] --- ### **完整CMake配置示例** ```cmake cmake_minimum_required(VERSION 3.10) project(your_project) # 关键配置:指定absl路径 list(APPEND CMAKE_PREFIX_PATH "/usr/local") find_package(absl REQUIRED COMPONENTS base strings synchronization ) add_executable(main main.cpp) target_link_libraries(main absl::base absl::strings) ```
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值