【问题标题】:Cannot run CMake executable with or without debugger under Visual Studio 2017: "Access is denied."无法在 Visual Studio 2017 下使用或不使用调试器运行 CMake 可执行文件:“访问被拒绝。”
【发布时间】:2018-05-04 21:52:55
【问题描述】:

我正在尝试在 Visual Studio 2017 的调试器下运行使用 CMake 生成的解决方案文件构建的程序,以调试问题。但是,每当我尝试选择 Start DebuggingStart Without Debugging 时,都会弹出以下错误消息。

无法启动程序 'E:\build\someprogram\build\x64\Debug\ALL_BUILD

访问被拒绝。

乍一看,这个问题听起来像here 描述的问题。但是,据称该错误已在 VS 2017 15.5 中修复,而我目前使用的是 15.6.7。并且编译后的可执行文件的位置不在 RAM 磁盘或网络驱动器上,而是在物理驱动器上。当运行调试器时也会发生错误。

我还想知道可执行文件是否配置不正确,因为看起来错误与ALL_BUILD 目标有关,但在我的CMakeLists.txt 中我有这个声明:

add_executable(someproject ${SOURCE_FILES})

我认为这会添加要运行的可执行文件。它还在解决方案资源管理器中显示为子项目。

编译后的 .exe 在 Visual Studio 之外运行良好,尽管它崩溃了,我正在尝试调试。奇怪的是,我无法从崩溃后出现的Abort/Retry/Ignore 对话框中通过单击Retry 进入Visual Studio 调试器,就像它指示的那样;永远不会出现选择 Visual Studio 版本的窗口。

这似乎不是权限问题,因为我手动调整了所有具有所有权限的构建目录的权限,没有任何更改。我也在以管理员权限运行 Visual Studio,这没什么区别。此外,我在完全不同的机器(Windows 10,而不是 Windows 7)上复制了构建过程,并且发生了完全相同的错误,所以我怀疑这是 CMake 问题。

【问题讨论】:

    标签: windows visual-studio cmake


    【解决方案1】:

    您需要将不同的项目设置为启动项目(右键单击目标可执行项目"someproject" 并从上下文菜单中选择"Set as StartUp Project")。 ALL_BUILD 是一个符号目标,未连接到可执行文件。

    【讨论】:

    • 谢谢。似乎您可以使用以下内容在 CMake 中进行配置:set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME})
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    相关资源
    最近更新 更多