You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu16.04编译YARPL时gmock依赖不存在错误的解决求助

解决Ubuntu 16.04编译YARPL时CMake提示gmock不存在的问题

我之前在Ubuntu 16.04上编译依赖gmock的项目时也碰到过几乎一样的问题,大概率是以下几个原因之一,你可以按顺序尝试这些解决办法:

1. 检查是否遗漏了YARPL的Git子模块

很多GitHub项目会把依赖(比如gmock)作为Git子模块引入,如果你是从rsocket库中获取的YARPL,可能没拉取完整的子模块内容。回到YARPL的根目录,执行以下命令补全子模块:

git submodule update --init --recursive

这会自动拉取所有依赖的子模块资源,包括gmock。之后重新进入build目录,再运行一次CMake命令试试。

2. 手动指定gmock/gtest的路径给CMake

Ubuntu 16.04通过apt安装的libgmock-dev和libgtest-dev可能存在路径配置问题,导致CMake无法自动定位到它们。你可以先确认gmock的安装路径:

dpkg -L libgmock-dev

通常路径会是/usr/src/gmock,然后在运行CMake时手动指定路径参数:

cmake ../ -DCMAKE_BUILD_TYPE=DEBUG -DGMOCK_DIR=/usr/src/gmock -DGTEST_DIR=/usr/src/gtest

如果还是不行,尝试指定根目录参数:

cmake ../ -DCMAKE_BUILD_TYPE=DEBUG -DGTEST_ROOT=/usr/src/gtest -DGMOCK_ROOT=/usr/src/gmock

3. 源码编译安装适配版gmock/gtest

Ubuntu 16.04仓库里的gmock版本偏旧,且默认安装方式可能不匹配CMake的查找规则。你可以卸载现有包,然后从源码编译安装:

# 卸载现有包
sudo apt remove --purge libgmock-dev libgtest-dev
sudo apt autoremove

# 获取googletest源码包并编译安装
sudo apt-get install apt-src
apt-src install libgtest-dev
cd googletest-*
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install

安装完成后,重新运行CMake命令,此时CMake应该能自动找到标准路径下的gmock。

4. 修改YARPL的CMakeLists.txt适配Ubuntu 16.04

如果以上方法都无效,可以尝试调整YARPL根目录的CMakeLists.txt,修改gmock的查找逻辑:
找到文件中类似find_package(GMock REQUIRED)的代码块,替换为:

find_package(GTest REQUIRED)
find_package(GMock REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS} ${GMOCK_INCLUDE_DIRS})
link_directories(${GTEST_LIBRARY_DIRS} ${GMOCK_LIBRARY_DIRS})

保存后重新运行CMake即可。

内容的提问来源于stack exchange,提问作者Manasvini Ganesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:15:06