我正在开发一个项目并决定将其移植到 CMake。在配置时,我使用了占位符构建名称 build;没有遇到任何问题。但当我把名字改成S&W
,CMake 不让我构建。它产生了错误消息:
[cmake] CMake Error at CMakeLists.txt:28 (add_executable):
[cmake] The target name "S&W" is reserved or not valid for certain CMake features,
[cmake] such as generator expressions, and may result in undefined behavior.
我很确定这个名字S&W
不被 CMake 保留。
那么为什么会发生这种情况呢?我可以做些什么来修复这个错误吗?
cmake_minimum_required(VERSION 3.14)
project(S&W)
include_directories("source")
include_directories("dependencies/include")
file(GLOB_RECURSE SRC "source/*.cpp")
LINK_DIRECTORIES("dependencies/lib/x86")
if ( MINGW )
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
LINK_LIBRARIES("mingw32")
endif ( MINGW )
LINK_LIBRARIES("libSDL2main.a")
LINK_LIBRARIES("libSDL2.dll.a")
LINK_LIBRARIES("libSDL2_mixer.dll.a")
add_executable(${PROJECT_NAME} ${SRC})
该错误表明您无法声明target其中包含一些特殊符号(&
在你的情况下)。
但是,这并不意味着您无法生成file与给定的名字。只需创建“正常”可执行目标,但分配输出名称它的属性:
add_executable(SW ${SRC})
set_target_properties(SW PROPERTIES OUTPUT_NAME "S&W")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)