1. 程式人生 > >使用VSCode 編譯調試QT程序

使用VSCode 編譯調試QT程序

dep 依賴 否則 tell ogg mas workspace dir load

預備知識

  1. bat文件,或者其他的腳本
  2. qmake基本語法,qmake shadow build
  3. vscode 的task配置

前提

  1. 各個程序正確安裝,即使用QtCreator可以正常編譯運行
  2. 使用QtCreator生產.pro文件

編譯運行

bat文件如下:

  1. debug版本

    @echo off
    title qmake and nmake build prompt
    set VCINSTALLDIR=D:\Microsoft Visual Studio 14.0\VC
    set QTDIR=D:\Qt\Qt5.9.1\5.9.1\msvc2015_64
    set PATH=%VCINSTALLDIR%\bin;%QTDIR%\bin;D:\7-Zip;%PATH%
    ::shadow build
    cd ..
    set file = tips-build-debug-msvc2015_64
    if NOT exist %file% ( mkdir tips-build-debug-msvc2015_64
    cd tips-build-debug-msvc2015_64
    call "%VCINSTALLDIR%\vcvarsall.bat" amd64
    qmake ../tips/tips.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
    nmake
    cd debug
    ::windeployqt tips.exe
    ::tips.exe
  2. relese版本

    @echo off
    title qmake and nmake build prompt
    set VCINSTALLDIR=D:\Microsoft Visual Studio 14.0\VC
    set QTDIR=D:\Qt\Qt5.9.1\5.9.1\msvc2015_64
    set PATH=%VCINSTALLDIR%\bin;%QTDIR%\bin;D:\7-Zip;%PATH%
    ::shadow build
    cd ..
    set file = tips-build-release-msvc2015_64
    if NOT exist %file% ( mkdir tips-build-release-msvc2015_64
    cd tips-build-release-msvc2015_64
    call "%VCINSTALLDIR%\vcvarsall.bat" amd64
    qmake ../tips/tips.pro -spec win32-msvc "CONFIG+=release" "CONFIG+=qml_release"
    nmake
    cd release
    ::windeployqt tips.exe
    tips.exe
  3. namke 也可以換成QT默認的jom
  4. windeployqt 這個是QT自帶的部署工具,可以搜素exe的所有依賴dll。調試的時候,若是不指定環境變量,需要將windeployqt打開,否則程序無法加載。當然,只要打開一次就夠了,因為此時所有必要的的dll已經全部復制到程序目錄下了。

task配置如下:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build_debug",
            "type": "shell",
            "command": "cmd",
            "args": [
                "/c",
                "build_debug.cmd"
            ],
            "group": "build",
            "presentation": {
                // Reveal the output only if unrecognized errors occur.
                "reveal": "silent"
            },
            // Use the standard MS compiler pattern to detect errors, warnings and infos
            "problemMatcher": "$msCompile"
        },
        {
            "label": "build_release",
            "type": "shell",
            "command": "cmd",
            "args": [
                "/c",
                "build_release.cmd"
            ],
            "group": "build",
            "presentation": {
                // Reveal the output only if unrecognized errors occur.
                "reveal": "silent"
            },
            // Use the standard MS compiler pattern to detect errors, warnings and infos
            "problemMatcher": "$msCompile"
        }
    ]
}

調試

先讀這裏https://github.com/Microsoft/vscode-cpptools/blob/master/launch.md,介紹了怎麽配置c++的lanch文件。
然後配置文件如下:

{
    // 使用 IntelliSense 了解相關屬性。 
    // 懸停以查看現有屬性的描述。
    // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "CDB",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "tips.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}/../tips-build-debug-msvc2015_64/debug/",
            "environment": [],
            //"symbolSearchPath": "C:\\Symbols",
            "externalConsole": true,
            "logging": {
                "moduleLoad": false,
                "trace": true
             },
             "visualizerFile": "my.natvis"
        }
    ]
}

這份配置需要先build再run,如果加上一個參數

"preLaunchTask":"build_debug"

即可實現每次按F5,自動開始重新編譯並且開始調試程序。

使用VSCode 編譯調試QT程序