簡體   English   中英

防止在Visual Studio 2017 cmake項目中關閉控制台窗口

[英]Prevent console window from closing in Visual Studio 2017 cmake project

Visual Studio 2017內置了對cmake項目的支持,這意味着您只需打開包含CMakeLists.txt的文件夾即可使用它。 但是,似乎沒有辦法阻止控制台窗口在運行可執行文件后關閉

使用普通的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應該為我處理它。

在我的可執行文件完成后,當我的可執行文件來自cmake項目時,如何使Visual Studio控制台不關閉?

我正在使用Microsoft Visual Studio Community 2017,版本15.2(26430.16)發布

這是Visual Studio 2017 CMake支持中的一個錯誤 它在VS 2019中得到了解決。

作為臨時解決方法,在應用程序退出時添加斷點並在調試時運行( F5 ):

  1. Ctrl + B新斷點
  2. 輸入功能名稱: exit
  3. 按確定

現在,如果運行項目( F5 ),調試器將在main()返回后停止。

要刪除斷點,請轉到斷點視圖Ctrl + Alt + B )並從那里刪除它。

最近碰到了這種情況,因為我們有時會在我們的UI應用程序中使用stdout來調試信息,我們需要在我們的開發機器上打開控制台窗口,但在我們的CI構建中將其轉換為它。

在您的CMakeLists.txt中必須是'add_executable'語句,如下所示:

add_executable(project_name WIN32 ${your_source_files})

如果省略WIN32 ,CMake會將子系統更改為“Console”,這會導致Visual Studio在應用程序退出時保持控制台窗口處於打開狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM