cartographer

博客记录了在编译cartographer时遇到的两个问题:1. 由于cmake版本3.5导致的CMP0026警告,解决方法是在CMakeLists.txt中添加特定行;2. gtest编译报错,需要从源码编译gtest并正确配置GMOCK_SRC_DIR。最后成功编译但对cartographer为何需要gtest源码感到疑惑。
摘要由CSDN通过智能技术生成

记录一点小的问题

根据官网要求安装的是gmock官网安装过程,但是make的时候是需要gtest的。
我前几天编译cartographer是能成功的,最近自己在学习gtest,不知道改错了什么,不管怎么编译cartographer都不能成功。

遇到两个问题

1.CMP0026

在下载github上的代码后,直接cmake,因为我的cmake版本是3.5,会有问题。有一个warning就是CMP0026。按照提示步骤上网查了,解决办法如下。
在根目录的CMakeLists.txt文件里添加这句话

cmake_policy(SET CMP0026 OLD)

前几行看起来是这样子的

# Copyright 2016 The Cartographer Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

cmake_minimum_required (VERSION 2.8.7)
cmake_policy(SET CMP0026 OLD)
project(cartographer)
set(CARTOGRAPHER_MAJOR_VERSION 1)
set(CARTOGRAPHER_MINOR_VERSION 0)
set(CARTOGRAPHER_PATCH_VERSION 0)
set(CARTOGRAPHER_VERSION ${CARTOGRAPHER_MAJOR_VERSION}.${CARTOGRAPHER_MINOR_VERSION}.${CARTOGRAPHER_PATCH_VERSION})
set(CARTOGRAPHER_SOVERSION ${CARTOGRAPHER_MAJOR_VERSION}.${CARTOGRAPHER_MINOR_VERSION})

之后在cmake是就不会有warning了。

2.gtest编译报错

比较匪夷所思的是在编译cartographer时,需要找到gtest的源码,而且还需要编译。不是可以直接链接到已有的gtest库吗。。
按照教程

sudo apt-get install google-mock

在/usr/src下会出现gmock的目录。但是看了gmock的CMakeLists发现还需要gtest。但是官网给出的步骤里没有gtest的安装。不知道为何。如果不安装,那么编译cartographer时一定会出错。
于是使用

sudo apt-get install libgtest-dev

会发现/usr/src多出了一个gtest文件夹,这样子才是正确的。

然而。。。这样子也不一定可以。反正我这次编译是失败了。
在打开cmake-gui以后去观察了cartographer的配置。其中有一句。
GMOCK_SRC_DIR
默认是会配置成/usr/src/gmock的。然而这样配置,我在编译时会死在%73的进度条上显示

[ 72%] Building CXX object gmock/CMakeFiles/gmock.dir/usr/src/gtest/src/gtest-all.cc.o
In file included from
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值