我想在 arm 目标系统上使用 ctest。因此尝试对 cmake(包括 ctest)进行交叉编译,但只失败了。我按照以下网址中的指导使用 cross-ng 构建了 arm 交叉编译器:
http://www.kitware.com/blog/home/post/426
我的测试手臂机器是树莓派。所以上面的指南帮助我获得了 arm 交叉编译器。
使用这个 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。它们是 arm 二进制文件。但是当我 scp ctest 进入我的 Raspberry-Pi 并进行测试时,它失败并显示以下消息:
./ctest:/lib/arm-linux-gnueabihf/libc.so.6:未找到版本“GLIBC_2.15”(./ctest 需要)
让我发布我的工具链文件。
SET(CMAKE_SYSTEM_NAME Linux)
设置(CMAKE_SYSTEM_VERSION 1)
SET(CMAKE_C_COMPILER /home/me/local/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc)
SET(CMAKE_CXX_COMPILER /home/me/local/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-g++)
SET(CMAKE_FIND_ROOT_PATH /home/me/local/x-tools/arm-unknown-linux-gnueabi)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
有人可以指导我如何获得 ctest 的 arm 版本吗?