为了保持简单,我正在尝试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 – 与Google测试纠缠在一起全部内容,希望文章能够帮你解决android – 与Google测试纠缠在一起所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)