如何在Yocto(开放嵌入式)系统上开始使用谷歌测试



我正在为ARM64设备做一个项目,并使用Linux Embedded作为操作系统。我正在尝试使用谷歌测试,但当运行bitbake时,它失败了。错误如下:

| CMake Error at /#####/tmp-glibc/work/#####-oe-linux/project_name/1.0-r0/recipe-sysroot-native/usr/share/cmake-3.16/Modules/GoogleTestAddTests.cmake:40 (message):
|   Error running test executable.
|
|     Path: '/#####/tmp-glibc/work/#####-oe-linux/project_name/1.0-r0/build/projectName/hello_test'
|     Result: 126
|     Output:
|
|
|
|
| ninja: build stopped: subcommand failed.
| WARNING: /#####/tmp-glibc/work/#####-oe-linux/project_name/1.0-r0/temp/run.do_compile.19988:1 exit 1 from 'eval ${DESTDIR:+DESTDIR=${DESTDIR} }VERBOSE=1 cmake --build '/#####/tmp-glibc/work/#####-oe-linux/project_name/1.0-r0/build' "$@" -- ${EXTRA_OECMAKE_BUILD}'

我已经在我的src文件夹中编辑了cmake,并添加了以下组件wrt Gtests:

cmake_minimum_required(VERSION 3.5.0)
# set the project name and version
project(project_name)
#specify C++ standards
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
add_compile_options (-std=c++11 -Wall)
configure_file(common/inc/common.h.in common.h)
add_definitions(-DPACKAGE_ARCH=${PACKAGE_ARCH})
add_definitions(-DPACKAGE_DISTRO=${PACKAGE_DISTRO})
include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip
)
# For Windows: Prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)
add_subdirectory (executable_name ${PROJECT_BINARY_DIR}/srclocation)

CMake用于包含测试用例的文件:

set(S_EXECUTABLE executableName)
#specify C++ standards
add_compile_options (-std=c++11 -Wall)
# add the executable
add_executable(${S_EXECUTABLE } src/abc.cpp)
target_include_directories(${S_EXECUTABLE}
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/inc
PUBLIC ${PROJECT_BINARY_DIR})
install(
TARGETS ${S_EXECUTABLE}
RUNTIME DESTINATION ${FOOBAR_INSTALL_BINDIR}
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ
GROUP_EXECUTE GROUP_READ
)
enable_testing()
add_executable(
hello_test
src/hello_test.cpp
)
target_link_libraries(
hello_test
gtest_main
)
include(GoogleTest)
gtest_discover_tests(hello_test)

已在上询问https://unix.stackexchange.com/questions/656529/how-to-start-using-google-tests-on-a-yoctoopen-embedded-system

正如评论中所述,这是一个交叉编译器问题

最新更新