2017-08-27 1 views
2

Ich möchte ein minimales Beispiel erstellen, um ein C-Programm zu erstellen. Ich habe diese CMakeLists.txt Datei:Warum überprüft CMake den C++ - Compiler?

cmake_minimum_required(VERSION 3.6) 

set(CMAKE_SYSTEM_NAME Generic) 
set(CMAKE_SYSTEM_PROCESSOR arm) 

set(CMAKE_C_COMPILER "arm-none-eabi-gcc") 
#set(CMAKE_CXX_COMPILER "arm-none-eabi-g++") 

set(CMAKE_EXE_LINKER_FLAGS "--specs=nosys.specs" CACHE INTERNAL "") 

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) 

project("funambule") 

list(
    APPEND src 
     main.c 
) 

add_executable(
    funambule 
    ${src} 
) 

Als ich cmake . laufen. CMake möchte unbedingt den C++ Compiler überprüfen, obwohl ich keinen brauche. Wie kann ich verhindern, dass diese nutzlose Überprüfung durchgeführt wird?

-- The C compiler identification is GNU 5.4.1 
-- The CXX compiler identification is GNU 5.4.0 
-- Check for working C compiler: /cygdrive/c/Users/NoOne/Home/bin/arm-none-eabi-gcc 
-- Check for working C compiler: /cygdrive/c/Users/NoOne/Home/bin/arm-none-eabi-gcc -- works 
-- Detecting C compiler ABI info 
-- Detecting C compiler ABI info - failed 
-- Detecting C compile features 
-- Detecting C compile features - done 
-- Check for working CXX compiler: /usr/bin/CC 
-- Check for working CXX compiler: /usr/bin/CC -- broken 
... 

Antwort

5

Dies ist das Standardverhalten von CMake. Um es zu ändern, sollten Sie die Sprache angeben, für Sie Projekt mit:

project(<PROJECT-NAME> [LANGUAGES]) 

Von CMake documentation:

Optional können Sie angeben, welche Sprachen Ihr Projekt unterstützt. Beispielsprachen sind C, CXX (d. H. C++), Fortran usw. Standardmäßig sind C und CXX aktiviert, wenn keine Sprachoptionen angegeben sind. Geben Sie die Sprache NONE an oder verwenden Sie das Schlüsselwort LANGUAGES und listen Sie keine Sprachen auf, um das Aktivieren von Sprachen zu überspringen.