我想在arm目标系统上使用ctest。 所以试图手臂交叉编译cmake(包括ctest),但只是失败了。 我在下面的URL中引导了使用cross-ng构建arm交叉编译器:
http://www.kitware.com/blog/home/post/426
我的测试臂机是树莓派。所以上面的指南帮助我获得了arm cross编译器。
通过这个arm交叉编译器,我成功构建并测试了helloworld!
但是,使用这个arm交叉编译器,我无法编译cmake-2.8.12.2,如下所示。
mkdir -p / somepath / bin / cmake
cd / somepath / bin / cmake
cmake -DCMAKE_TOOLCHAIN_FILE = / home / me / bin / RaspberryPi / CMakeToolChain / Toolchain-RaspberryPi.cmake /somepath/src/cmake-2.8.12.2
通过这种方式,我得到了错误,但是cmake,ctest和cpack都是构建的。它们是手臂二进制文件。 但当我scp ctest进入我的Raspberry-Pi并进行测试时,它会失败并显示以下信息:
./ ctest:/lib/arm-linux-gnueabihf/libc.so.6:版本`GLIBC_2.15'不 发现(由./ctest要求)
让我发布我的工具链文件。
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)
SET(CMAKE_C_COMPILER /家/我/本地/ X-工具/ ARM-未知的Linux gnueabi /斌/手臂未知的Linux gnueabi-GCC)
SET(CMAKE_CXX_COMPILER /家庭/ ME /本地/ X-工具/臂未知-Linux的gnueabi / bin中/臂未知-Linux的gnueabi-G ++)
SET(CMAKE_FIND_ROOT_PATH /家/我/本地/ X-工具/ ARM-未知的Linux gnueabi)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM从不) SET(仅限CMAKE_FIND_ROOT_PATH_MODE_LIBRARY) SET(仅限CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
有人可以指导我如何获得ctest的手臂版本吗?
答案 0 :(得分:1)
我找到了以下错误消息的解决方案:
./ ctest:/lib/arm-linux-gnueabihf/libc.so.6:版本`GLIBC_2.15'不是 发现(由./ctest要求)
我的目标机器是raspberry-pi。而libc.so.6的版本就是版本2.13! 我必须从crosstool-ng的menuconfig配置它。 从crosstool-ng的menuconfig中选择正确版本的libc是解决方案。
非常感谢stackoverflows.com!