我尝试在使用CMake和Visual Studio构建的可执行文件上设置RequireAdministrator清单标志。关于如何指示CMake设置该选项有什么想法吗?谢谢你!账单3
kx1ctssn1#
我很感激这个问题被标记为visual-studio-2008,但是对于VS2010,这会产生以下错误消息:错误MSB 4030:“level ='requireAdministrator' uiAccess ='false'”是“链接”任务的“UACUIAccess”参数的无效值。“UACUIAccess”参数的类型为“System.Boolean”。VS2010的等效CMake命令(忽略/SUBSYSTEM:WINDOWS部分)为
SET_TARGET_PROPERTIES(your_executable PROPERTIES LINK_FLAGS "/level='requireAdministrator' /uiAccess='false'")
qyswt5oh2#
试试这个:
SET_TARGET_PROPERTIES(your_executable PROPERTIES LINK_FLAGS "/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\" /SUBSYSTEM:WINDOWS")
iyfamqjs3#
如果是控制台应用程序,则需要删除“/SUBSYSTEM:WINDOWS”。试试这个:
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS " /MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\" ")
bvpmtnay4#
在cmake 3.24.2中,它可以很好地与以下各项配合使用:
target_link_options(<target name> PRIVATE "/MANIFESTUAC:level='requireAdministrator'" PRIVATE "/MANIFESTUAC:uiAccess='false'")
4条答案
按热度按时间kx1ctssn1#
我很感激这个问题被标记为visual-studio-2008,但是对于VS2010,这会产生以下错误消息:
错误MSB 4030:“level ='requireAdministrator' uiAccess ='false'”是“链接”任务的“UACUIAccess”参数的无效值。“UACUIAccess”参数的类型为“System.Boolean”。
VS2010的等效CMake命令(忽略/SUBSYSTEM:WINDOWS部分)为
qyswt5oh2#
试试这个:
iyfamqjs3#
如果是控制台应用程序,则需要删除“/SUBSYSTEM:WINDOWS”。
试试这个:
bvpmtnay4#
在cmake 3.24.2中,它可以很好地与以下各项配合使用: