我无法启动并运行 Google 测试。我已阅读建议的 steps来自 Google,我还查看了以前的 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也在工程中,其中包含阶乘函数。谷歌测试同样获知项目文件——factorial.pro:
INCLUDEPATH +=
/opt/android-studio/ndk/sources/third_party/googletest/googletest/include
当我按下 [Build > Build Project "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
来自 gtest-all.cpp
和 gtest_main
来自 gtest_main.cpp
.
另一种选择是获取已经构建的库。我从未搜索过它们,但它们可能就在那里。
关于android - 纠结谷歌测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22140325/