I’m doing a project for ARM64 devices and am using Linux Embedded as the OS. I am trying to using Google Tests but when running bitbake, it is failing. Heres the error:
| 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}'
I’ve edited the cmake in my src folder and added these components 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 for the file containing test case:
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)
Advertisement
Answer
Already asked on https://unix.stackexchange.com/questions/656529/how-to-start-using-google-tests-on-a-yoctoopen-embedded-system
This was a cross compiler issue as stated in the comments