在 windows 中使用 CMake 和 clang++ 设置链接器子系统

Setting linker subsystem with CMake and clang++ in windows

我正在尝试在 windows 中使用 SDL 创建一个窗口应用程序,使用 ninja 来构建。当我尝试构建时,出现错误:

lld-link: error: subsystem must be defined

看来我需要设置 /SUBSYSTEM:WINDOWS 链接器标志才能正常工作。我如何在 CMake 中设置它?

我尝试使用 add_executable 中提到的 WIN32 标志,但是当我再次尝试构建时,clang 命令没有改变,错误仍然存​​在。

我也看了,尽管它似乎指的是另一个问题,但没有帮助。 我也在 this question 中尝试了其他答案,添加

set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS")

但它只是抛出 no such file or directory: '/SUBSYSTEM:WINDOWS'

您可以尝试使用

target_link_options(your_target_name PRIVATE "/SUBSYSTEM:WINDOWS")

查看 cmake 文档:https://cmake.org/cmake/help/git-stage/command/target_link_options.html