【开发环境】Ubuntu 中使用 VSCode 开发 C/C++ ⑤ ( tasks.json 中的 args 数组配置分析 | 编译并执行 C++ 程序 )
文章目錄
- 一、tasks.json 中的 args 數(shù)組配置分析
- 二、編譯并執(zhí)行 C++ 程序
可以參考官方提供的文檔 : https://code.visualstudio.com/docs/cpp/config-linux
使用 VSCode 開(kāi)發(fā) C/C++ 程序 , 涉及到 333 個(gè)配置文件 :
① tasks.json : 編譯器構(gòu)建 配置文件 ;
② launch.json : 調(diào)試器設(shè)置 配置文件 ;
③ c_cpp_properties.json : 編譯器路徑和智能代碼提示 配置文件 ;
下面開(kāi)始逐個(gè) 生成 上述配置文件 ;
一、tasks.json 中的 args 數(shù)組配置分析
tasks.json 構(gòu)建腳本內(nèi)容如下 :
{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: g++ 生成活動(dòng)文件","command": "/usr/bin/g++","args": ["-fdiagnostics-color=always","-g","${workspaceFolder}/*.cpp","-o","${fileDirname}/${fileBasenameNoExtension}"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "編譯器: /usr/bin/g++"}] }其中的 “args” 參數(shù)是 g++ 編譯器后的參數(shù) ;
"args": ["-fdiagnostics-color=always","-g","${workspaceFolder}/*.cpp","-o","${fileDirname}/${fileBasenameNoExtension}"],- -fdiagnostics-color=always 彩色警告 ;
- -g 編譯器編譯時(shí) , 產(chǎn)生調(diào)試信息 ;
- ${workspaceFolder}/*.cpp 配置的是源文件 , 在目錄下的 cpp 后綴的是源文件 ;
- -o 編譯時(shí)的輸出路徑 ;
- ${fileDirname}/${fileBasenameNoExtension} 編譯輸出的可執(zhí)行文件 , ${fileDirname} 目錄是 .vscode , ${fileBasenameNoExtension} 是 task , 輸出路徑是 .vscode/task ;
二、編譯并執(zhí)行 C++ 程序
使用 Ctrl + Shift + B 快捷鍵 , 即可完成編譯操作 ;
也可以在菜單欄中選擇 " 終端 / 運(yùn)行任務(wù) " ,
選擇 " C/C++:g++ 生成活動(dòng)文件 " 選項(xiàng) ,
編譯完成 ;
> Executing task: C/C++: g++ 生成活動(dòng)文件 <正在啟動(dòng)生成... /usr/bin/g++ -fdiagnostics-color=always -g /home/octopus/vscode/helloworld/*.cpp -o /home/octopus/vscode/helloworld/.vscode/tasks生成已成功完成。終端將被任務(wù)重用,按任意鍵關(guān)閉。生成的可執(zhí)行文件在 .vscode 目錄下 , 名稱(chēng)是 task ;
執(zhí)行 cd .vscode 命令 , 進(jìn)入 .vscode 目錄中 ,
使用 ./task 命令 , 執(zhí)行該 task 可執(zhí)行文件 , 打印如下內(nèi)容 ;
Hello C++ World from VS Code and the C++ extension!總結(jié)
以上是生活随笔為你收集整理的【开发环境】Ubuntu 中使用 VSCode 开发 C/C++ ⑤ ( tasks.json 中的 args 数组配置分析 | 编译并执行 C++ 程序 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【开发环境】Ubuntu 中使用 VSC
- 下一篇: 【Linux 内核】线程调度示例一 ②