1. 程式人生 > >40 VSCode下.json文件的編寫

40 VSCode下.json文件的編寫

try alc als 小寫 -o blog 屬性 tle 文件名

0 引言

轉入linux/VSCode編程之後,迫切了解到有必有較為系統地學習一下VSCode中相關配置文件的寫法。下面將分為 linux/g++編譯指令、.json文件關鍵詞/替換變量的意義、編譯鏈接過程原理分析幾個部分進行介紹,並以opencv為例,將上述知識綜合運用。

1 linux/g++編譯指令介紹

參照BattleScars的博客,摘取其中對本文有用的部分進行運用,博客鏈接如下,質量非常之高,表示感謝!!!

https://www.cnblogs.com/battlescars/p/cpp_linux_gcc.html

(1)針對一個完整的、單一的.cpp文件,helloworld.cpp,其編譯指令如下。

$ g++ helloworld.cpp

編譯器 g++ 通過檢查命令行中指定的文件的後綴名可識別其為 C++ 源代碼文件。編譯器默認的動作:編譯源代碼文件生成對象文件(object file),鏈接對象文件和c++ 庫中的函數得到可執行程序。然後刪除對象文件。由於命令行中未指定可執行程序的文件名,編譯器采用默認的 a.out。程序的運行方式如下,

$ ./a.out 

如果要指定可執行程序的文件名,使用 "-o"參數,如下,

$ g++ -std=c++11 helloworld.cpp -o helloworld

暫時了解到這裏就可以了,在編譯多個源文件生成可執行程序時,可參照上述博客內容。

(2)g++相關參數的意義

  參考了此貼,表達感謝!

https://blog.csdn.net/lin_008/article/details/77600483

  1 g++ -I[path](大寫的i,即include path) 編譯程序按照指定的路徑去搜索頭文件,指定的路徑為第一個去尋找的路徑,eg

g++ -I/usr/include

  2 g++ -L[lib](大寫的L) 編譯程序按照-L指定的路徑進去尋找文件,一般的在-L的後面可以一次用-l指定多個庫文件 ,eg

g++ -L/usr/lib/x86_64-linux-gnu

  3 g++ -l [掐頭去尾的庫名](小寫L)

編譯程序到系統默認路徑尋找庫文件,庫文件的格式如下。

g++ -lz     #庫文件的名稱為libz.so,庫名為z

  如果找不到,那麽到當前目錄下找;如果還找不到,那麽到LD_LIBRARY_PATH等環境變量置頂的路徑中去查找;如果仍然找不到,那麽編譯程序提示找不到庫。

2 .json文件參數的意義

VSCode采用.json結尾的文件作為配置文件,包含關鍵詞和相關參數兩個部分。以本人編寫的opencv中的參數文件為例進行解釋,如下。

(1)launch.json

為了能夠debugging,需要生成一個launch.json文件。

{
    // 使用 IntelliSense 了解相關屬性。 
    // 懸停以查看現有屬性的描述。
    // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
            "miDebuggerPath": "/usr/bin/gdb", 
            "preLaunchTask":"build",
            "args": [], 
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

40 VSCode下.json文件的編寫