android – 与Google测试纠缠在一起

我无法通过Google测试开始运行.我已经从Google阅读了建议的 steps,我也看了以前的 post,并阅读了其他 examples,但并不清楚太多的事情.

为了保持简单,我正在尝试Google测试中提供的示例,可从Android ndk – sample1中的目录中获取

// main.cpp

#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"
#include "gtest/gtest.h"

int main(int argc,char *argv[])
{
    QGuiApplication app(argc,argv);
    testing::InitGoogleTest(&argc,argv);

    QtQuick2ApplicationViewer viewer;
    viewer.setMainQmlFile(QStringLiteral("qml/factorial/main.qml"));
    viewer.showExpanded();

    return RUN_ALL_TESTS();
}

// sample1_unittest.cpp

#include <limits.h>
#include "sample1.h"
#include "gtest/gtest.h"

// Tests factorial of 0.
TEST(FactorialTest,Zero) {
  EXPECT_EQ(1,Factorial(0));
}

文件sample1.h,sample1.cpp也在项目中,其中包含阶乘函数. Google测试同样被通知项目文件 – factorial.pro:

INCLUDEPATH += 
/opt/android-studio/ndk/sources/third_party/googletest/googletest/include

当我按[Build>构建项目“factorial”]得到以下错误

main.cpp:8: error: undefined reference to 'testing::InitGoogleTest(int*,char**)'
sample1_unittest.cpp:17: error: undefined reference to 'testing::Test::test()'

我正在使用Ubuntu,QtCreator,Android和C.事实上,我已经花了3天的时间嘲笑,但到目前为止没有太多的地方.因此,我在这里张贴希望一些上师可能会提供任何暗示.任何帮助将主要赞赏.

解决方法

您似乎没有从您描述的方式构建Google Test.您需要将项目编译到库中,然后与其进行链接.如果您安装了 CMake,那么您有两个选择:

>使用CMake的GUI(相当直观)来生成构建系统文件,然后像往常一样使用(例如,如果您生成Visual Studio解决方案,打开.sln文件并构建项目).
>使用命令行做同样的事情;基本上你只需创建一个新的目录,然后执行cmake< path-to-google-test>在里面其余的是一样的.

你也可以自己构建图书馆.该分发包含一个名为fused-src的文件夹,它应至少包含两个文件:gtest_main.cpp和gtest-all.cpp.编译这些文件,你完成了.您需要在此生成两个库:从gtest_main.cpp中删除gtest-all.cpp和gtest_main.

一个替代方案是获取已建立的库.我从来没有搜索过他们,但他们可能在那里.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...