Cmake Cross Compiling导致arm-none-eabi-gcc上的测试失败

时间:2015-08-06 02:34:42

标签: c gcc cmake arm

我正在尝试使用cmake来交叉编译到arm cortex-m。我已使用以下CMakeLists.txt文件设置了cmake。

INCLUDE(CMakeForceCompiler)
#cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
SET(CMAKE_SYSTEM_NAME Generic)
#this one not so much
SET(CMAKE_SYSTEM_VERSION 1)

# specify the cross compiler
SET(CMAKE_FORCE_C_COMPILER arm-none-eabi-gcc)
SET(CMAKE_FORCE_CXX_COMPILER arm-none-eabi-g++)
#added as test
SET(CMAKE_C_COMPILER arm-none-eabi-gcc)
SET(CMAKE_CXX_COMPILER arm-none-eabi-g++)
# this one is important
SET(CMAKE_SYSTEM_NAME Generic)

#specify the generator to use
SET(CMAKE_GENERATOR "Unix Makefiles")
project(Template C CXX)

然而,当我跑步" cmake .."来自构建目录或来自gui。我得到了以下错误。

  

C:/ Program Files出现CMake错误   (86)/CMake/share/cmake-3.3/Modules/CMakeTestCCompiler.cmake:61   (消息):C编译器" C:/ Program Files(x86)/ GNU Tools ARM   Embedded / 4.9 2014q4 / bin / arm-none-eabi-gcc.exe"不能   编译一个简单的测试程序。

为什么cmake试图测试编译器?我怎么让它停下来? 我尝试使用NONE作为语言,但它不知道链接语言。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

CMAKE_FORCE_C_COMPILERdocumentation

  

它将CMAKE_C_COMPILER设置为给定的编译器,将cmake内部变量CMAKE_C_COMPILER_ID设置为给定的编译器ID。它还绕过了对工作编译器和基本编译器信息测试的检查。