windows - Kan ikke køre CMake eksekverbar med eller uden debugger under Visual Studio 2017: 'Adgang nægtes.'

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at køre et program bygget med en CMake-genereret løsningsfil under Visual Studio 2017s debugger for at fejle et problem. Men når jeg prøver at vælge Start Debugging eller Start Without Debugging får jeg følgende fejl popup.



  Kan ikke starte programmet
  'E: \ build \ someprogram \ build \ x64 \ Debug \ ALL\_BUILD

  
  Adgang nægtet.



Ved første øjekast lød problemet som det her beskrevne. Men den fejl blev angiveligt fastsat i VS 2017 15,5, og jeg bruger i øjeblikket 15.6.7. Og placeringen af ​​den kompilerede eksekverbare er ikke på en RAM-disk eller et netværksdrev, men på et fysisk drev. Og fejlen opstår, når du kører uden en debugger også. [12]


Jeg spekulerede også på, om den eksekverbare ikke var korrekt konfigureret, da det ser ud til, at fejlen er relateret til målet ALL\_BUILD, men i min CMakeLists.txt har jeg denne erklæring:


add\_executable(someproject ${SOURCE\_FILES})


Jeg ville tro det ville tilføje den eksekverbare til at køre. Det vises også som et underprojekt i Solution Explorer.


Den kompilerede .exe kører udenfor Visual Studio fint, selvom det går ned, hvilket jeg forsøger at fejle. Jeg kan ikke gå ind i Visual Studio debugger fra dialogen Abort/Retry/Ignore, der vises efter nedbruddet ved at klikke Retry som den instruerer; vinduet til valg af Visual Studio-versionen vises aldrig.


Det ser ikke ud til at være et tilladelsesproblem, da jeg manuelt justerede tilladelsen fra alle bygningskatalogerne med alle tilladelser uden ændringer. Jeg kører også Visual Studio med administratorrettigheder, og det gør ingen forskel. Desuden replikede jeg byggeprocessen på en helt anden maskine (Windows 10, i modsætning til Windows 7), og den samme fejl opstår, så jeg mistenker det er et CMake problem.

Bedste reference


Du skal indstille et andet projekt som startprojekt (højreklik på dit målkørbare projekt "someproject" og vælg "Set as StartUp Project" fra kontekstmenuen). ALL\_BUILD er et symbolsk mål og er ikke forbundet til en eksekverbar.