2017-10-06 6 views
0

Je suis en train de faire une affectation d'école qui implique CMake.CMake error "Attendu un nom de commande"

Je suis en train d'importer le projet CMake à Clion mais je reçois l'erreur suivante:

CMake Error at CMakeLists.txt:35: Parse error. Expected a command name, got unquoted argument with text "add_subdirectory​".

La ligne spécifiée est la suivante:

#​ ​Add​ ​terminal​ ​sub​ ​directory 
add_subdirectory​(​terminal) 

target_link_libraries(${Screen}​ ​Terminal) 

Le tout fichier CMake:

# Projektets namn 
project(Screen) 

# Minsta tillåtna cmake version 
cmake_minimum_required(VERSION 3.2) 

# Kompilera med c++ 11 stöd 
set (CMAKE_CXX_STANDARD 11) 

# Lägg till katalogen med våra bibliotek till INCLUDE path 
# (i dessa kataloger kommer kompilatorn att leta efter de 
# header filer som inkluderas i koden) 
INCLUDE_DIRECTORIES($ENV{TOOLS_INCLUDE}) 

# Ta med alla källkodsfiler i den aktuella katalogen och 
# lägger dem i listan SRC_LIST. 
aux_source_directory(. SRC_LIST) 

# Om Debug mode 
if (CMAKE_BUILD_TYPE STREQUAL "Debug") 
    # Skriv ut meddelandet Debug mode samt sätt kompilator 
    # direktivet DEBUG 
    message("Debug mode") 
    add_definitions(-DDEBUG) 
else(CMAKE_BUILD_TYPE STREQUAL "Debug") 
    # Skriv ut meddelandet Release mode. 
    message("Release mode") 
endif (CMAKE_BUILD_TYPE STREQUAL "Debug") 

# Skapa en exekverbar fil med källkodsfilerna i från 
# SRC_LIST. Första parametern är namnet på målet (Target) 
add_executable(${PROJECT_NAME} ${SRC_LIST}) 

#​ ​Add​ ​terminal​ ​sub​ ​directory 
add_subdirectory​(​terminal) 
target_link_libraries(${{PROJECT_NAME}​ ​Terminal) 

Des idées que je fais mal ici?

+0

S'il vous plaît fournir des lignes précédentes votre "add_subdirectory()" commander. Je suspecte une parenthèse fermante manquante dans la commande précédente. BTH, votre utilisation de "add_subdirectory()" semble valide – Antwane

+0

@Antwane Mise à jour de la publication. – Lithicas

Répondre

1

La commande utilisée est:

add_subdirectory​(​terminal) 

mais le ( omble chevalier est précédé et suivi par un omble chevalier nul. Ceci est invisible, mais peut être débogué en utilisant un éditeur hexadécimal, ou n'importe quel éditeur de texte qui met en évidence ce genre d'erreur (je l'ai détecté en utilisant Sublime Text).

vous suffit de remplacer cette ligne par:

add_subdirectory(terminal) 

Note: voir la différence entre les 2 lignes HxD, un éditeur hexadécimal:

enter image description here