Win10專業(yè)版使用VSCode調(diào)試ITensor項目

內(nèi)容轉(zhuǎn)載自我的博客

1. 安裝vscode和wsl子系統(tǒng)

  • 訪問vscode官網(wǎng)下載最新穩(wěn)定的windows版本并安裝
  • 為vscode安裝擴展C/C++Remote-SSH
  • 在win10專業(yè)版中找到啟用或關(guān)閉windows功能,選擇適用于Linux的Windows子系統(tǒng)卖漫,根據(jù)提示安裝后重啟系統(tǒng)
  • 在應(yīng)用商店里面搜索框輸入linux掂林,選擇匹配的第一個選項點擊
    應(yīng)用商店搜索linux
  • 在新的頁面選擇Ubuntu肃叶,點擊并安裝,等待安裝完成即可
  • 在開始菜單找到剛才安裝好的Ubuntu應(yīng)用洽胶,點擊進入會自動配置屈梁,等待配置完成即可輸入用戶名和密碼來使用Ubuntu系統(tǒng)
  • 在wsl系統(tǒng)下使用sudo apt-get update && sudo apt-get install make來安裝make工具

2. 安裝itensor

具體方法見itensor-install/README.md

3. 使用vscode編寫代碼

3.1 配置vscode

打開vscode惕味,點擊左下角的><標(biāo)志

><標(biāo)志

選擇Remote-WSL: New Window盐碱,然后在新窗口中進行操作把兔,新窗口的左下角標(biāo)志為下圖
Remote-WSL: New Window

原窗口可以根據(jù)自己需要決定是否關(guān)閉;至于Select Python Interpreter可以點擊后選擇第一個瓮顽,或者不管它

3.2 windows的文件與wsl系統(tǒng)的文件互相訪問

windows讀取wsl系統(tǒng)的文件:

  1. 在windows文件管理器進入目錄C:\Users\zfb\AppData\Local\Packages\县好,這里的zfb是用戶名,根據(jù)每個人的電腦設(shè)置不同這個名稱也會變化
  2. 在文件夾下找到以CanonicalGroupLimited.UbuntuonWindows開頭的那個目錄暖混,點擊進入缕贡,并再選擇LocalState文件夾進入
  3. 在文件夾下右鍵點擊rootfs,選擇固定到快速訪問儒恋,之后便可以在左側(cè)快速訪問直接進入這個rootfs文件夾了
    rootfs固定到快速訪問

    它里面的目錄即為Ubuntu系統(tǒng)的目錄,可以直接交互

wsl系統(tǒng)讀取windows的文件:
打開Ubuntu應(yīng)用黔漂,也就是一個終端窗口诫尽,輸入命令cd /mnt/c則進入C盤主路徑,同理cd /mnt/d進入D盤主路徑炬守,可以通過ls命令來驗證

3.3 創(chuàng)建新的文件夾

創(chuàng)建一個新的itensor項目通常要新建一個文件夾
第一種方法
在步驟2中打開的窗口里面牧嫉,點擊菜單欄終端-->新建終端,然后在下面的窗口即可使用命令行創(chuàng)建文件夾(與Ubuntu系統(tǒng)的終端功能用法完全一致)减途,若已經(jīng)有此終端則不需要新建酣藻,直接使用即可

終端-->新建終端

第二種方法,不推薦鳍置,可能會有問題
在windows資源管理器打開rootfs文件夾辽剧,一般再進入home文件夾,zfb文件夾(用戶名税产,根據(jù)自己設(shè)置的不同而不同)
用戶名文件夾

在當(dāng)前目錄下新建文件夾即可

3.4 正式編寫代碼

在vscode的菜單欄點擊文件-->打開文件夾怕轿,在彈出的窗口選擇你要打開的文件夾(一般為上一步創(chuàng)建的文件夾)偷崩,點擊確定即可

文件-->打開文件夾

上圖中打開的文件夾即為test,在此處右鍵即可選擇新建文件或者文件夾
新建文件或者文件夾

這里以test文件夾為例撞羽,需要注意的是Makefile文件來源于github下載的itensor壓縮包的tutorial/project_template文件夾下阐斜,Makefile文件里面的對應(yīng)變量需要修改(根據(jù)步驟2即可),.cpp文件和.h文件根據(jù)自己需要修改為自己的代碼
下面是最重要的設(shè)置路徑和任務(wù)環(huán)節(jié)诀紊,配置一次即可以后復(fù)制過來永久使用

  1. 創(chuàng)建文件夾.vscode谒出,不要忘記前面的.
    創(chuàng)建文件夾.vscode
  2. .vscode文件夾下為C/C++擴展添加配置文件c_cpp_properties.json,內(nèi)容如下
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/home/zfb/itensor/**"
            ],
            // 修改includePath的第二個值為itensor的安裝路徑
            // 即options.mk文件所在的目錄
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}
  1. .vscode文件夾下添加配置文件tasks.json邻奠,內(nèi)容如下
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "itensor-build",
            "command": "make",
            "args": [],
            "type": "shell"
          },
          {
            "label": "itensor-build-debug",
            "command": "make",
            "args": [
              "debug"
            ],
            "type": "shell"
          },
          {
            "label": "itensor-clean",
            "command": "make",
            "args": [
              "clean"
            ],
            "type": "shell"
          }
    ]
}
  1. .vscode文件夾下添加配置文件launch.json笤喳,內(nèi)容如下
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}-g",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false,
                }
            ],
            "preLaunchTask": "itensor-build-debug" 
            // 調(diào)試會話開始前執(zhí)行的任務(wù),與tasks.json的label相對應(yīng)
        }
    ]
}

以上四步執(zhí)行完畢后的目錄如下


項目目錄

3.5 編譯和運行

第一種方法

  1. 打開main()函數(shù)所在的.cpp文件惕澎,保證激活的窗口這里為此文件莉测,也可以打開其他文件,但是一定要保證當(dāng)前編輯器窗口顯示的是此文件的代碼
    文件代碼
  2. 菜單欄選擇調(diào)試-->啟動調(diào)試即可運行此代碼(不要設(shè)置斷點唧喉,否則就進入調(diào)試了)捣卤,若出現(xiàn)下圖
    調(diào)試-->啟動調(diào)試

    則點擊圖中的終端即可切換到程序輸出結(jié)果界面
    點擊終端

第二種方法
點擊菜單欄的終端-->新建終端,然后在彈出的窗口里面即可使用Ubuntu命令八孝,編譯使用make董朝,運行使用./myappname等等

終端-->新建終端

3.6 調(diào)試代碼

  1. 鼠標(biāo)移動到你需要暫停的那一行的行號的前面,鼠標(biāo)指針會變成小手形狀干跛,同時會有一個虛的紅點子姜,左鍵點擊即可在當(dāng)前位置設(shè)置斷點,同理可以在其他位置也添加斷點


    設(shè)置斷點
  2. 菜單欄選擇調(diào)試-->啟動調(diào)試即可調(diào)試此代碼
    調(diào)試-->啟動調(diào)試

上面中間位置的工具欄可以控制進行繼續(xù)運行直到下一個斷點楼入、單步跳過哥捕、單步調(diào)試單步跳出嘉熊、重啟程序遥赚、結(jié)束調(diào)試
左側(cè)可以查看變量的值,鼠標(biāo)在編輯區(qū)的變量上懸停也可以看到變量的值

4. 快速使用

建立在已經(jīng)熟悉前面三個步驟的基礎(chǔ)上阐肤,直接新建文件夾test1凫佛,然后把.vscode文件夾和里面的文件直接復(fù)制到test1文件夾下,在此文件下編寫代碼孕惜,運行調(diào)試即可

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末愧薛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子衫画,更是在濱河造成了極大的恐慌毫炉,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件削罩,死亡現(xiàn)場離奇詭異碘箍,居然都是意外死亡遵馆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門丰榴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來货邓,“玉大人,你說我怎么就攤上這事四濒』豢觯” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵盗蟆,是天一觀的道長戈二。 經(jīng)常有香客問我,道長喳资,這世上最難降的妖魔是什么觉吭? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮仆邓,結(jié)果婚禮上鲜滩,老公的妹妹穿的比我還像新娘。我一直安慰自己节值,他們只是感情好徙硅,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著搞疗,像睡著了一般嗓蘑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上匿乃,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天桩皿,我揣著相機與錄音,去河邊找鬼幢炸。 笑死泄隔,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的阳懂。 我是一名探鬼主播梅尤,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼柜思,長吁一口氣:“原來是場噩夢啊……” “哼岩调!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起赡盘,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤号枕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后陨享,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體葱淳,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡钝腺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赞厕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片艳狐。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖皿桑,靈堂內(nèi)的尸體忽然破棺而出毫目,到底是詐尸還是另有隱情,我是刑警寧澤诲侮,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布镀虐,位于F島的核電站,受9級特大地震影響沟绪,放射性物質(zhì)發(fā)生泄漏刮便。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一绽慈、第九天 我趴在偏房一處隱蔽的房頂上張望恨旱。 院中可真熱鬧,春花似錦久信、人聲如沸窖杀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽入客。三九已至,卻和暖如春腿椎,著一層夾襖步出監(jiān)牢的瞬間桌硫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工啃炸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留铆隘,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓南用,卻偏偏與公主長得像膀钠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子裹虫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353