我怎样才能交叉编译ctest?

时间:2014-03-23 09:31:39

标签: cmake arm cross-compiling ctest

我想在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的手臂版本吗?

1 个答案:

答案 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!

相关问题