文章目錄
- 前言
- 環境配置教程
- Windows下的vscode:
- 基于VSCode和CMake實作C/C++開發 | Linux篇
- 第一講:Linux系統介紹
- 1.1 目錄結構
- 1.2 指令與選項
- 1.3 重要指令講解 +【實戰】命令列演練
- pwd - Print current working directory
- ls - List directory contents
- clear 或者 ctrl + l:清屏
- cd - change directory
- mkdir - make directories
- touch - change file timestamps
- rm - remove files or directories
- cp - copy files and directories
- mv - move (rename) files
- man - an interface to the system reference manuals
- reboot - reboot the machine
- shutdown - power-off the machine
- 推薦安裝:tree
- 1.4 檔案編輯
- 第二講:開發環境搭建
- 第三講:GCC編譯器
- 3.1 編譯程序
- 3.2 g++重要編譯引數
- 第四講:GDB除錯器
- 常用除錯命令引數
- 第五講:VSCode
- 5.1 界面介紹
- 5.2 插件安裝
- 5.3 快捷鍵
- ↓ 代碼編輯相關的快捷鍵 ↓
- 5.4【實戰】2個小專案
- 第六講:CMake
- 6.1 Cross-platform development
- 6.2 語法特性介紹
- 6.3 重要指令和CMake常用變數
- 6.3.1 重要指令
- 6.3.2 CMake常用變數
- 6.4 CMake編譯工程
- 6.4.1 編譯流程
- 6.4.2 兩種構建方式
- 6.5 【實戰】CMake代碼實踐
- 6.5.1 最小CMake工程
- 6.5.2 多目錄工程 - 直接編譯
- 6.5.3 多目錄工程 - 生成庫編譯
- 第七講:實戰:使用VSCode進行完整專案開發
- launch.json:
- tasks.json:
前言
課程地址:https://www.bilibili.com/video/BV1fy4y1b7TC
微軟官方《設定 WSL 開發環境的最佳做法》:
https://docs.microsoft.com/zh-cn/windows/wsl/setup/environment
以下這幾個可以參考,但我并沒有看:
WSL安裝教程:https://www.bilibili.com/video/BV1aA411s7PJ
WSL官方檔案:https://docs.microsoft.com/zh-cn/windows/wsl/install
Visual Studio 中的 CMake 專案:
https://docs.microsoft.com/zh-cn/cpp/build/cmake-projects-in-visual-studio?view=msvc-170
Linux常用命令:
https://blog.csdn.net/qq_23329167/article/details/83856430?spm=1001.2014.3001.5506
環境配置教程

輸入指令:wsl --install
完畢后重啟,
重啟后看到界面:

等待一段時間后,可以設定 Linux 用戶資訊,(詳見官方檔案,若忘記密碼也有講怎么操作)
設定好賬號密碼后,運行指令:sudo apt update && sudo apt upgrade(建議使用發行版的首選包管理器定期更新和升級包, 對于 Ubuntu 或 Debian,請使用此命令)
,,,,,,
安裝并開始設定 Windows 終端:
微軟商店一直打不開,
最后我是:

然后重啟了一下就好了,
終端界面:

可以通過命令面板呼叫 Windows 終端的大多數功能, 呼叫它的默認鍵組合是 Ctrl+Shift+P, 你還可以使用 Windows 終端預覽下拉選單中的命令面板按鈕打開它,
跨檔案系統:
https://docs.microsoft.com/zh-cn/windows/wsl/filesystems#file-storage-and-performance-across-file-systems
心得:
基本上就按著官方的教程配置就好了,官方檔案寫的非常清楚,
Windows下的vscode:
插件:C/C++ Project Generator
給大家推薦一個插件,C/C++ Project Generator,這個插件直接給你把工程檔案和Cmake檔案建立好了,task.json和launch.json也對應好了,有特殊需求可以直接在里面改,很方便,建議大家試試;也可以按照up的一步步來,方便理解運行
基于VSCode和CMake實作C/C++開發 | Linux篇
設計內容:

第一講:Linux系統介紹

Linux中一切皆檔案,比如檔案夾也是檔案,
1.1 目錄結構

1.2 指令與選項
Linux的指令是指在Linux終端(命令列)中輸入的內容,

(課件中的所有中括號的內容意味著可以省略)
Linux中指令是有自動補全的:TAB鍵位,比如我輸入一個mk然后按tab:

1.3 重要指令講解 +【實戰】命令列演練
pwd - Print current working directory
作用:列印當前終端所在的目錄

ls - List directory contents
作用:列出當前作業目錄下的所有檔案/檔案夾的名稱
用法:
用法1:ls
ls
用法2:ls [路徑]
# ls 相對路徑
ls ./ #【表示當前目錄下】
ls ../ #【上一級目錄下】
# ls 絕對路徑
ls /home # 絕對路徑一定要以 斜杠 開頭,代表根目錄
用法3:ls [選項] [路徑]
# ls 選項 路徑
ls -lah /home
# 選項解釋:
-l:表示list,表示以詳細串列的形式進行展示
-a:表示顯示所有的檔案/檔案夾(包含了隱藏檔案/檔案夾)
-h:表示以可讀性較高的形式顯示
# ls -l 中 “-”表示改行對應的檔案型別為檔案,“d”表示檔案型別為檔案夾,
# 在Linux中隱藏檔案一般都是以“.”開頭
ls -l 中 “-”表示改行對應的檔案型別為檔案,“d”表示檔案型別為檔案夾,
在Linux中隱藏檔案一般都是以“.”開頭
clear 或者 ctrl + l:清屏
cd - change directory
作用:切換當前的作業目錄
用法1:cd ; cd ~
# 以下兩條命令等價,示直接進入當前用戶的家目錄下【很常用】
cd
cd ~
用法2:cd [相對路徑]
# 進入到上級目錄下
cd ..
# 進入到上級目錄中的local目錄下
cd ../local
用法3:cd [絕對路徑]
# 進入到/usr/local目錄下
cd /usr/local
Linux中波浪線代表的就是家目錄的意思,
mkdir - make directories
作用:創建目錄
用法1:mkdir 路徑
# 在當前路徑下創建出目錄“myfolder”
mkdir myfolder
用法2:mkdir -p 路徑
含義:一次性創建多層不存在的目錄
# 創建 ~/a/b/c 目錄
mkdir -p ~/a/b/c
用法3:mkdir 路徑1 [路徑2] [路徑3]
含義:一次性創建多個目錄
# 在當前目錄分別創建a、b、c三個檔案夾
mkdir a b c
如果不用 -p 創建多層不存在的目錄則會報錯:

touch - change file timestamps
作用:創建新檔案
【為什么創建新檔案是touch】
- touch的作用本來不是創建檔案,而是將指定檔案的修改時間設定為當前時間,就是假 裝“碰”(touch)了一下這個檔案,假裝檔案被“修改”了,于是檔案的修改時間就是被設定為當前時間,
- 這帶來了一個副作用,就是當touch一個不存在的檔案的時候,它會創建這個檔案,然后, 由于touch已經可以完成創建檔案的功能了,就不再需要一個單獨的create了,
用法1:touch [路徑]
# 在當前目錄下創建linux.txt檔案
touch linux.txt
# 在上級目錄下創建linux檔案
touch ../linux
# 在/home/bing/目錄下創建myfile檔案
touch /home/bing/myfile
用法2:touch [路徑1] [路徑2]
# 在當前目錄下創建file file.txt 兩個檔案
touch file file.txt
rm - remove files or directories
作用:洗掉檔案/目錄
用法1:rm [選項] 需要移除的檔案路徑
# 洗掉當前路徑下的myfile檔案
rm myfile
# 洗掉/usr路徑下的myfile檔案
rm /usr/myfile
用法2:rm [選項] 需要移除的目錄
# 洗掉當前路徑下的abc檔案
rm -rf myfolder
# 洗掉/usr路徑下的abc檔案
rm -rf /usr/myfolder
cp - copy files and directories
作用:復制檔案/檔案夾到指定的位置
用法1:cp [被復制的檔案路徑] [檔案被復制到的路徑]
# cp命令來復制一個檔案
cp /home/bing/myfile ./
用法2:cp -r [被復制的檔案夾路徑] [檔案夾被復制到的路徑]
含義:-r 表示遞回復制,復制檔案夾的時候需要加 -r
# 復制/home/bing/myfolder檔案夾到根目錄/下
cp -r /home/bing/myfolder /
r 代表 recursion(遞回),而之前講 rm 命令中的 -rf 其實是 -r -f (感覺涉及到檔案夾操作的都要 -r 才行?)
mv - move (rename) files
作用:移動檔案到新的位置,或者重命名檔案
用法:mv [需要移動的檔案路徑] [需要保存的位置路徑]
# 移動當前目錄下myfile檔案到根目錄/下
mv myfile /myfile
# 移動當前目錄下myfolder檔案夾到根目錄/下
mv myfolder /myfolder
# 移動當前目錄下myfile到根目錄/下,并重命名為myfile007
mv myfile myfile007
man - an interface to the system reference manuals
作用:包含了Linux中全部命令手冊
用法:man [命令]
含義:查看命令使用手冊,按 q 退出
# 查看ls命令的手冊
man ls
# 查看cd命令的手冊
help cd # man沒有cd,要用help去看
# 查看man命令的手冊
man man
reboot - reboot the machine
作用:重啟linux系統
用法:reboot
# 立即重啟
reboot
shutdown - power-off the machine
作用:關機
用法:shut -h [時間]
# 立即關機
shutdown -h now
推薦安裝:tree
sudo apt install tree
比如用ls看到當前目錄有檔案夾Logs,就可以使用命令:
tree Logs/
1.4 檔案編輯



第二講:開發環境搭建

在Linux中安裝任意一個軟體之前,最好先執行一下:sudo apt update ?
參考了:https://zhuanlan.zhihu.com/p/272522594
這一講我們只需要執行下面兩行即可:
sudo apt update
sudo apt install cmake gcc clang gdb build-essential
第三講:GCC編譯器

3.1 編譯程序


綠色代表可執行檔案,檔案名test,執行一個可執行檔案,輸入 ./ 表示當前路徑,所以這里是:./test
3.2 g++重要編譯引數
-
-g 編譯帶除錯資訊的可執行檔案

-
-O[n] 優化源代碼

-
-l 和 -L 指定庫檔案 | 指定庫檔案路徑

-
-I 指定頭檔案搜索目錄

-
-Wall 列印警告資訊

-
-w 關閉警告資訊

-
-std=c++11 設定編譯標準

-
-o 指定輸出檔案名

-
-D 定義宏

(上圖是cpp檔案,應該用g++,錯寫成gcc了)
注:使用 man gcc 命令可以查看gcc英文使用手冊

如上圖,對比了一下開不開氧氣優化的區別,time 加 可執行檔案,可以把具體時間量化出來,
(補充:通配符,比如我們經常看到的 * ,可以使用星號代替零個、單個或多個字符,
https://baike.baidu.com/item/%E9%80%9A%E9%85%8D%E7%AC%A6/92991?fr=aladdin)
3.3.2 生成庫檔案并編譯



注:Linux動態庫擴展名 .so ,靜態庫擴展名 .a
第四講:GDB除錯器

常用除錯命令引數
除錯開始:執行gdb [exefilename] ,進入gdb除錯程式,其中exefilename為要除錯的可執行檔案名
以下命令后括號內為命令的簡化使用,比如 run(r) ,直接輸入命令 r 就代表命令:


Tips:
- 編譯程式時需要加上-g,之后才能用gdb進行除錯:gcc -g main.c -o main
- 回車鍵:重復上一命令
4.2 【實戰】命令列除錯
第五講:VSCode
5.1 界面介紹

比較常用的:View->show minimap, Terminal->New Terminal 打開終端,和外面的終端作用一模一樣,Terminal->Split Terminal 終端分屏,
換行:

5.2 插件安裝
https://docs.microsoft.com/zh-cn/windows/wsl/compare-versions
請考慮嘗試 VS Code Remote - WSL 擴展,以便使你不僅能夠使用 Linux 命令列工具將專案檔案存盤在 Linux 檔案系統上,而且還可以使用 Windows 上的 VS Code 在 Internet 瀏覽器中創作、編輯、除錯或運行專案,而不會造成任何與跨 Linux 和 Windows 檔案系統作業相關聯的性能下降, 了解詳細資訊,
5.3 快捷鍵
VS Code里面按下F1、輸入shortcuts、回車,就會自動跳轉到這個檔案,這個方法可以查看這個檔案的實時更新,
https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf

高頻:


↓ 代碼編輯相關的快捷鍵 ↓




代碼格式化還能用滑鼠右鍵的形式:
5.4【實戰】2個小專案
5.4.1 高頻使用技巧
- 左右分屏
- 固定打開的檔案
- 格式化代碼
- Rename Symbol
- 顯示minimap
- 側邊欄查看OUTLINE
- 全屏
- 關閉多個打開的檔案
分屏:

第六講:CMake

6.1 Cross-platform development
Say you use Visual Studio on Windows, Xcode on OSX and Makefile for Linux:

沒有用跨平臺的編譯工具(小插曲:Win10,繁體簡體切換,ctrl + shift + F):

新寫一個bar.cpp,需要對每個平臺的構建工具都進行更新,很麻煩,
而cmake的流程:

6.2 語法特性介紹

6.3 重要指令和CMake常用變數
6.3.1 重要指令





6.3.2 CMake常用變數



6.4 CMake編譯工程

6.4.1 編譯流程

6.4.2 兩種構建方式


6.5 【實戰】CMake代碼實踐
針對第五章寫的兩個小專案來寫對應的CMakeLists.txt
6.5.1 最小CMake工程

6.5.2 多目錄工程 - 直接編譯
之前swap的工程,g++編譯的時候:
那么這里用CMakeLists.txt:
cmake_minimum_required(VERSION 3.0)
project(SWAP)
include_directories(include)
add_executable(main_cmake main.cpp src/swap.cpp)
終端編譯執行:
mkdir build
cd build
cmake ..
make
./main_cmake
6.5.3 多目錄工程 - 生成庫編譯

第七講:實戰:使用VSCode進行完整專案開發
launch.json:




program:代表著你要除錯的可執行檔案的路徑,
preLaunchTask:在除錯之前要做一個task

tasks.json:


兩者結合,自動化除錯:


build有倆任務:cmake … 和 make
launch.json中的preLaunchTask就指定了那個tasks.json的那個任務,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/385885.html
標籤:其他
上一篇:c++記憶體池無鎖
