CMake出错:"Expected a command name"。

7

我正在做一项涉及CMake的学校作业。

我正在尝试在CLion中导入CMake项目,但是我遇到了以下错误:

CMakeLists.txt:35处出现错误,解析错误。期望一个命令名称,但得到了未引用的文本“add_subdirectory​”。

指定的行如下:

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

target_link_libraries(${Screen}​ ​Terminal)

整个 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)

有什么想法我在这里做错了吗?

请提供在“add_subdirectory()”命令之前的行。我怀疑前一个命令中缺少了闭括号。顺便说一句,你使用“add_subdirectory()”的方式是有效的。 - Antwane
@Antwane 已更新帖子。 - Lithicas
1个回答

12

你使用的命令是:

add_subdirectory​(​terminal)

但是(字符前后都有一个空字符。这是看不见的,但可以使用十六进制编辑器或任何突出显示此类错误的文本编辑器进行调试(我使用Sublime Text检测到它)。

只需将此行替换为:

add_subdirectory(terminal)

注意:查看十六进制编辑器HxD中2行之间的差异:

输入图像描述


1
我有同样的问题,但是用十六进制编辑器看不到这种情况。 - KansaiRobot
这一定是一个特殊情况。 - Mykola Tetiuk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接