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

标签 c++ windows cmake clang++

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

lld-link: error: subsystem must be defined

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

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

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

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

但它只是抛出没有这样的文件或目录:'/SUBSYSTEM:WINDOWS'

最佳答案

您可以尝试使用

target_link_options(your_target_name PRIVATE "/SUBSYSTEM:WINDOWS")

请参阅 cmake 文档:https://cmake.org/cmake/help/git-stage/command/target_link_options.html

关于c++ - 在 Windows 中使用 CMake 和 clang++ 设置链接器子系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65379575/

相关文章:

r - Windows 上的 H2O XGBoost : Error: java. lang.UnsatisfiedLinkError : ml. dmlc.xgboost4j.java.XGBoostJNI.XGDMatrixCreateFromCSREx([J[I[FI[J]I

c++ - 在 Apache Thrift 中使用 seqid 的目的是什么?

c++ - 在 const 方法中使用引用

windows - 如何使用 VBScript 终止进程

c++ - 找不到 cmake 和 osx 框架

c - 从 CMake 检索宏

c++ - 如何设置 CMAKE_INTDIR 或 CMAKE_CFG_INTDIR 来移除项目配置?

c++ - 在函数模板中使用类型参数和指向相同类型参数的指针

c++ - 如何在 C++ 中获取以逗号分隔的整数序列的最后一个整数?

mysql - 尝试使用 Ruby 2 在 Windows 8 上安装 mysql2 gem