libgtest.so文件未被识别,格式未被识别。

问题描述 投票:0回答:1

我试图在我的项目中整合googletest.我已经构建了googletest并生成了gtest.so和gtest_main.so.将这些文件移动到我的lib文件夹中,并包含到我的include文件夹中,编译工作正常,但链接时它无法识别gtest_main.so格式。我在做google测试构建的时候是不是漏掉了什么选项?

我构建googletest的步骤-:1)克隆代码,从 https:/github.comgooglegoogletest。2) cd googletest3) cmake .4) make

CMakeLists.txt -> 启用以下标志 set(CMAKE_CXX_STANDARD 11) set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)

CMakeCache.txt 制作了BUILD_SHARED_LIBS ON。

当libgtest.so生成后,将*.so文件复制到我的项目的lib文件夹中。

建立了我的项目,这是一个tizen项目.收到以下错误libgtest.so:文件未被识别,文件格式未被识别collect2:错误:ld返回1个退出状态clang++:错误:linker(通过gcc)命令失败,退出代码1(使用-v查看调用)。

c++ c compiler-errors linker googletest
1个回答
0
投票

问题似乎在于测试套件是在桌面上构建的,而目标处理器是桌面的。而Tizen项目则是针对ARM处理器交叉编译的。Tizen SDK使用单独的堆栈来做构建Tizen项目,无法使用你的库。为非ARM构建的二进制文件不能与ARM二进制文件一起使用。就像@rveerd写的那样。

不需要编译googletest才能在Tizen项目中使用它。

Tizen SDK支持googletest,创建能在Tizen设备上运行的测试项目的最简单方法是使用SDK中的模板。说明如下 https:/developer.tizen.orgdevelopmenttizen-studionative-toolsrunning-and-testing-your-appunit-test。 说。

  1. 在Tizen Studio菜单中,选择 File > New > Other > > > > Tizen > Tizen Native Unit Test Project.
  2. 在新建Tizen单元测试项目窗口中。
    • 在Select the Tizen Project for test面板中,选择你要测试的项目。
    • 为测试项目指定一个名称。
    • 指定保存项目的目标文件夹。
    • 点击 Finish

如果你喜欢留在你已经创建的项目中,并将lib复制到项目中,那么你应该使用与目标架构相匹配的.so文件。要创建一个,你可以用Tizen SDK工具来构建googletest,或者尝试一个已经为Tizen构建的工具。有一些包含googletest库的Tizen RPM,如 http:/download.tizen.orgreleasesmilestonetizenunifiedtizen-unified_20200521.1reposstandardpackagesarmv7lgstreamer-utils-1.16.2-24.1.armv7l.rpm。 .

© www.soinside.com 2019 - 2024. All rights reserved.