簡體   English   中英

如何為 Visual Studio 2017 RC CMake 項目設置工作目錄

[英]How to set working directory for Visual Studio 2017 RC CMake Project

我使用 Visual Studio 2017 RC 打開一個 CMake 項目,然后我發現工作目錄始終是輸出目錄。

有沒有辦法將工作目錄設置為輸出文件目錄以外的其他地方?

(因為沒有.sln文件,所以不能用舊的方式設置工作目錄)

更新我不是從 CMake 腳本調用程序。 我在 Visual Studio 中運行目標程序。 我想更改目標程序的工作目錄。

截至撰寫時(2017-03-23),無法通過 CMakeLists.txt 設置工作目錄 以下是一些解決方法:

使用launch.vs.json

根據此錯誤報告,您可以在調試和啟動設置中添加設置(右鍵單擊相關的 CMakeLists.txt)。 這將打開launch.vs.json文件,您可以在其中使用currentDir變量添加工作目錄。 下面是一個例子:

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "path\\to\\target",
      "name": "My Awesome Project",
      "currentDir": "${workspaceRoot}/src"
    }
  ]
}

如果您願意,可以繼續檢查該文件; 它可能位於.vs/launch.vs.json

使用 CMake >= 3.8.0 和VS_DEBUGGER_WORKING_DIRECTORY

另請參閱: CMake 是否提供了一種方法來為給定的構建系統設置工作目錄以在運行/調試項目時使用?

VS_DEBUGGER_WORKING_DIRECTORY是版本 3.8.0 中的新 CMake 目標屬性。 像這樣設置:

set_target_properties(
    MyProject PROPERTIES
    VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")

您需要使用獨立CMake的舊方法,生成.sln / .vcxproj文件,用Visual Studio打開解決方案,因為與Visual Studio 2017集成的CMake版本是3.6。 這導致...

等到 Visual Studio 附帶 CMake >= 3.8.0

不知道什么時候會發生; 該團隊目前正在考慮更新到 CMake 3.7,因此需要一段時間。 但是,當這種情況發生時,它可能會支持VS_DEBUGGER_WORKING_DIRECTORY屬性。

使用currentDir ,例如:

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "name": "testd.exe (Debug\\testd.exe)",
      "currentDir": "${workspaceRoot}\\app_home",
      "args": [
        "${workspaceRoot}\\app_home"
      ]
    }
  ]
}

VS_DEBUGGER_WORKING_DIRECTORY 不工作的原因是:
當我們使用 VisualStudio IDE 來管理項目時,它只是一個文本編輯器。 例如一個cmake項目,IDE只是通過CMakeSettings.json中的params運行cmake命令

那么如果我們選擇ninja ,它不會生成 .sln 和 .vcproj 文件,只是使用 build.ninja 來驅動構建過程。
如果我們選擇Visual Studio 2019 ,它會生成一個 .sln 文件和一些 .vcproj 文件,但這些文件只是構建的中間步驟。 當前的 VS-IDE 窗口不會加載這些文件,只需使用命令行利用 vcproj/sln 文件來構建。
VS_DEBUGGER_WORKING_DIRECTORY將保存到這些中間步驟 .vcproj 文件中,這些文件在當前 IDE 窗口中是不可見的。 (請記住:當前的 IDE 窗口只是 CMakeLists.txt 的文本編輯器)

換句話說,將 VS-IDE 與 cmake 和 makefile 一起使用並不重要。

注意:我們可以在輸出窗口中看到構建過程。

在此處輸入圖片說明

注意:無論我們選擇 Ninja 還是 VisualStudio2019,后端構建工具都是一樣的,MSVC。

但是我們如何使用 VS-IDE 屬性呢? 只需打開中間步驟.sln,Visual Studio 就會自動同步這兩個窗口。

暫無
暫無

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

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