代码之家  ›  专栏  ›  技术社区  ›  nonbirithm

无法在Visual Studio 2017下运行带或不带调试器的CMake可执行文件:“访问被拒绝。”

  •  1
  • nonbirithm  · 技术社区  · 6 年前

    我试图在Visual Studio 2017的调试器下运行一个使用CMake生成的解决方案文件构建的程序,以便调试问题。但是,每当我尝试选择 Start Debugging Start Without Debugging 我得到以下错误弹出窗口。

    无法启动程序 'E:\build\someprogram\build\x64\Debug\ALL\u 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,这没有什么区别。此外,我在一台完全不同的机器上复制了构建过程(Windows 10,而不是Windows 7),出现了完全相同的错误,因此我怀疑这是CMake问题。

    1 回复  |  直到 6 年前
        1
  •  2
  •   vre    6 年前

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