[ 编译篇 ] 嵌入式平台 使用GoogleTest框架测试C++代码

实际项目中写的应用层代码为了保证可靠性,需要编写一定的测试用例,进行单元测试。 这里以GoogleTest为例 ,在嵌入式平台上(Amlogic A113x 平台)实现应用层代码的测试。

编译官方 GoogleTest

下载官方源码

git clone  git@github.com:google/googletest.git

cmake 编译源码

cd  googletest-release-1.8.0/googletest

// 新建cmake 构建目录
mkdir mybuild  
// cmake 构建
cmake ../ 
//编译
make 

如果需要构建Google Test的示例,使用以下命令替换cmake …/

cmake -Dgtest_build_samples=ON ${GTEST_DIR}

这里为止,完成了在Ubuntu 16.04平台上构建GoogleTest 的步骤,详细构建可查看官网文档


这里的重点的是怎么在嵌入式平台上(Amlogic A113x 平台)构建GoogleTest

基本思路: 使用arm交叉编译器编译GoogleTest, 生成可调用的动态库,应用层通过调用GoogleTest动态库完成测试用例的编写

指定arm交叉编译器

GoogleTest默认使用CMake构建,这里通过修改googletest-release-1.8.0/googletest/CMakeLists.txt,指定 Amlogic A113x 平台使用的编译器, 如下

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
//根据实际情况,指定交叉编译的路径
set(tools /opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf)
//分别指定C和C++编译器 
set(CMAKE_C_COMPILER ${tools}/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER ${tools}/bin/arm-linux-gnueabihf-g++)

CMake中如何指定编译器,官方文档中有详细描述

生成动态库文件

方便应用层编写测试用例,这里需要编译出动态库。 还是修改`googletest-release-1.8.0/googletest/CMakeLists.txt

option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF)
改为
option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." ON)

//同时也打开编译出示例程序选项
option(gtest_build_samples "Build gtest's sample programs." ON)
编译

编译完成之后,主要libgtest.so和libgtest_main.so两个动态库,给应用层调用


参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏米扑专栏

ARM、X86/Atom、MIPS、PowerPC

关注Android的时候,有一些CPU架构方面的术语知识,主要有:ARM、X86/Atom、MIPS、PowerPC 1)ARM/MIPS/PowerPC均是基...

43320
来自专栏容器化

重磅!!!微软发布.NET Core 2.2

我们很高兴地宣布发布.NET Core 2.2。它包括对运行时的诊断改进,对ARM32 for Windows和Azure Active Directory f...

13020
来自专栏钱塘小甲子的博客

时间序列分析这件小事(五)--MA模型

之前讲了AR模型,与之对应的是MA模型,也就是移动平均模型。与AR模型类似,只不过,之前是由不同阶滞后的序列拟合出yt,而现在是不同阶滞后的白噪音拟合。说白了,...

25730
来自专栏AIUAI

论文阅读理解 - Look into Person: Self-supervised Structure-sensitive Learning

几种不同的标注数据集. (1)ATR 数据集的图片是固定尺寸的(400*600),仅是室外站立的模特,电商图片类适应. (2) PASCAL-Person...

22230
来自专栏机器人课程与技术

Anbox安装apk失败(提示Failure res=-113等)的解决方法

详细描述,如下(Anbox:如何安装Google Play商店并启用ARM(libhoudini)支持,简单方法):

1.6K40
来自专栏悟空被FFmpeg玩

定制交叉编译环境-gcc

42150
来自专栏程序手艺人

Linux下的环境变量

10020
来自专栏镁客网

上海公开科技扶持政策,RISC-V架构备受重视

为了扶持国内芯片的研发工作,各地政府均在政策和资金上不断补助。继去年8月首次发布RISC-V相关支持政策后,上海市经济信息化委员会最近发布了《上海市经济信息化委...

22520
来自专栏米扑专栏

商业价值:谷歌娱乐影音之路上的硬件产品

自从第一代Google TV机顶盒面世以来,谷歌在娱乐影音设备上的发展可谓风生水起,而近日发布的智能电视棒产品Chromecast更是把谷歌硬件推向了又一个高潮...

8020

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励