CMake 需要管理员

问题描述 投票:0回答:5

我正在尝试在使用 CMake 和 Visual Studio 构建的可执行文件上设置 RequireAdministrator 清单标志。

关于如何指导 CMake 设置该选项有什么想法吗?

谢谢!

比利3

c++ visual-studio-2008 cmake
5个回答
13
投票

我很欣赏这个问题被标记为 Visual-studio-2008,但对于 VS2010 这会产生以下错误消息:

错误 MSB4030:“level='requireAdministrator' uiAccess='false'”对于“Link”任务的“UACUIAccess”参数来说是无效值。 “UACUIAccess”参数的类型为“System.Boolean”。

VS2010 的等效 CMake 命令(忽略 /SUBSYSTEM:WINDOWS 部分)是

SET_TARGET_PROPERTIES(your_executable PROPERTIES LINK_FLAGS "/level='requireAdministrator' /uiAccess='false'")

9
投票

试试这个:

SET_TARGET_PROPERTIES(your_executable PROPERTIES LINK_FLAGS    "/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\" /SUBSYSTEM:WINDOWS")

1
投票

如果是控制台应用程序,则需要删除“/SUBSYSTEM:WINDOWS”。

试试这个:

set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS " /MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\" ")

0
投票

使用 cmake 3.24.2 可以很好地配合:

target_link_options(<target name> PRIVATE "/MANIFESTUAC:level='requireAdministrator'" PRIVATE "/MANIFESTUAC:uiAccess='false'")

0
投票

根据 Fraser 所说,在 cmake 3.9.1 和 Visual Studio 10 中对我有用的命令是:

SET_TARGET_PROPERTIES(your_executable PROPERTIES LINK_FLAGS "/MANIFESTUAC: /level='requireAdministrator' /uiAccess='false'")
© www.soinside.com 2019 - 2024. All rights reserved.