Visual Studio的2017年已经内置了支持cmake的项目,这意味着你可以打开包含的CMakeLists.txt的文件夹,并使用它。然而,似乎没有要到prevent the console window from closing after running an executable的方式。
与正常的Visual Studio项目,您可以使用Ctrl + F5键没有附加调试器中运行。但是,按Ctrl + F5确实做到了同样的事情,F5,也就是说,它运行可执行文件,并立即关闭控制台窗口。
另一项建议是设置子系统“控制台”的应用程序,但CMake的项目有,我可以设置设置没有Visual Studio项目。
我想也许我可以去调试和启动设置为我的CMakeLists.txt(右键单击>调试和启动设置> target.exe),由此拉开launch.vs.json。不幸的是,我无法找到这个文件。通过翻翻模式,但是,它好像我可以设置"noDebug": true
,但这只是关掉调试器,什么也没做,从收盘停止控制台:
{
"version": "0.2.1",
"defaults": {},
"configurations": [
{
"type": "default",
"project": "CMakeLists.txt",
"projectTarget": "target.exe",
"name": "target.exe",
"noDebug": true
}
]
}
这是推动我疯了。我不能只是添加system("pause")
的主要功能,因为我使用了一个测试框架提供的主要功能。此外,这应该是完全没有必要的; Visual Studio中应处理好对我来说。
我怎样才能使Visual Studio的控制台无法接近后,我的可执行程序完成后,当我的可执行文件是从cmake的项目?
我使用Microsoft Visual Studio 2017年的社区,15.2版本(26430.16)发布
这是在Visual Studio 2017年的CMake支持bug。它在VS 2019中得到解决。
作为暂时的解决办法,在应用程序退出添加断点,并与(F5)调试运行:
exit
现在,如果你运行项目(F5)main()
返回后,调试器将停止。
要删除断点,去断点视图(按Ctrl + Alt + B),并从那里删除它。
过这种情况最近来了,因为我们有时使用标准输出在我们的UI应用程序的调试信息,我们需要把我们的开发机器在控制台窗口中,但在我们的CI建设把它的。
在你的CMakeLists.txt必须是一个“add_executable”语句,就像这样:
add_executable(project_name WIN32 ${your_source_files})
如果您ommit的WIN32
,CMake的将改变子系统“控制台”,这导致Visual Studio来保持控制台窗口打开时,应用程序退出。