我正在尝试使用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作为语言,但它不知道链接语言。有什么想法吗?
答案 0 :(得分:0)
CMAKE_FORCE_C_COMPILER
宏documentation:
它将CMAKE_C_COMPILER设置为给定的编译器,将cmake内部变量CMAKE_C_COMPILER_ID设置为给定的编译器ID。它还绕过了对工作编译器和基本编译器信息测试的检查。