我无法通过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.