c++ - 在 CMAKE 中正确设置 Visual Studio 链接器标志/SUBSYSTEM

标签 c++ visual-studio linker cmake

我正在尝试使用 cmake 建立一个旧项目,我想保持所有标志与以前相同。 旧项目生成器具有链接器标志 /SUBSYSTEM,最小子系统版本号 5.01 设置如下:

/SUBSYSTEM:WINDOWS,"5.01"

我在 cmake 中尝试了同样的添加:

set_target_properties(mytarget PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS,\"5.01\"")

但是结果是错误的。 Cmake 似乎删除了(转义的)双引号并将链接器标志放置到 Visual Studio 项目中的“添加选项”:/SUBSYSTEM:WINDOWS,5.01

这样子系统标志就不会被识别并设置为CONSOLE

我尝试了几种组合如何将最小版本 ,"5.01" 添加到子系统标志,但没有成功。

是否有任何其他方法可以将最小子系统版本号添加到/SUBSYSTEM 标志?

最佳答案

您可以简单地在 add_executable 中使用 [WIN32] 标志功能:

add_executable(${PROJECT_NAME} WIN32 main.cpp)

关于c++ - 在 CMAKE 中正确设置 Visual Studio 链接器标志/SUBSYSTEM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33873735/

相关文章:

c++ - 访问非静态数据成员

c++ - 给定代码片段中引用的时间和空间局部性的所有出现

c++ - 如何在 C++ 中使用旧的 iostream.h (Visual Studio 2010)

c# - 有没有办法在 Visual Studio 2012 中查看更新服务引用操作的错误日志

visual-studio - 在 Visual Studio 2015 Update 2 中停止调试后如何让 iisexpress 继续运行?

python - Cython 找不到共享对象文件

binding - Ada - GNAT GPS IDE 没有绑定(bind)和链接

c++ - 如何处理超过 64 位的位域?

c++ - 我可以将使用 v120_xp 工具集构建的静态库链接到使用 VS2013 中的 v120 工具集构建的 EXE/DLL 吗?

c++ - 将来自 switch 语句的信息存储到变量中?