微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

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

原文地址:https://www.jb51.cc/android/311471.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐