概述
- 本文將介紹 VScode + cmake 在 windows10上編譯c++代碼
- 前提: 我之前已經安裝過VS2017, 故 編譯將采用cl.exe。
開始之前
本文演示環境基於 windows10。cmake和 VScode版本如下。
VS code版本: 1.54.1
cmake 版本: 3.18
VSCode插件安裝
我的插件安裝的比較多,你瞧
還有
編譯本文演示的代碼需要打開VScode插件商店或者離線安裝如下插件:
c/c++
下載地址: 點我直達官網
點擊 install 將啟動vscode在線安裝 或者右側的 download extension再離線安裝
cmake
下載地址: 點我直達官網
cmake tools
下載地址: 點我直達官網
插件安裝后,下面開始准備安裝cmake
cmake
-
下載適合自己的版本, 安裝后,將其 cmake.exe所在目錄添加到系統環境變量(或者打開命令行轉到cmake.exe所在目錄),測試cmake是否安裝成功。
-
測試鍵入命令cmake --version. 如果彈出類似下面的輸出,則說明成功
使用VScode打開文件夾
方便測試,可在桌面創建文件夾, 這里取名為 udp_socket 為例。創建成功后,使用VScode打開該文件夾, 方式有兩種:
- 1.先打開VScode, VS code首頁會提示你選擇打開文件夾
VScode 菜單也可以打開文件夾
- 2.打開創建的udp_socket 文件夾,此時,點擊鼠標右鍵菜單中選擇 通過VScode打開 , 即可。
演示代碼
基於打開的VScode,創建 名為 main.cc 的文件
創建結束后是這樣的
文件已經准備好,准備一段測試代碼,如下
#include <iostream>
/// 增加函數調試使用
void hello_vs_code_()
{
using namespace std;
int x = 11 + 22 + 33;
cout << "\n x = " << x;
}
int main(int argc, char* argv[], char* en[])
{
using namespace std;
cout << "hello vscode";
hello_vs_code_();
return 0;
}
點擊保存。
准備cmakelists.txt文件
- cmakelists.txt文件放在創建的 udp_socket文件夾下。
可以創建默認的 CMakeLists.txt文件,不過,文件內容不是我想要的,我選擇了更加通俗易懂的 modern cmake。 cmakelists.txt文件內容如下
cmake_minimum_required(VERSION 3.18)
# ---------------------------------------------------------------------------------------------------
# 1. set name
project(lib_udp)
# ---------------------------------------------------------------------------------------------------
# 2. to get all source files
# set source files
# -------------------------------------------------------------------------------------
file(GLOB_RECURSE udp_src ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc)
# build a library for udp
function(lib_udp_on_win)
# dynamic library
# ---------------------------------------------------------------------------------------------------
# compiler is vs
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
# build program
add_executable( ${PROJECT_NAME} ${lib_udp_type} ${udp_src} )
# .h and .cxx files
target_sources(${PROJECT_NAME} PRIVATE ${udp_src} )
# use c++11
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
endif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
endfunction(lib_udp_on_win)
# build
# ---------------------------------------------------------------------------------------------
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
lib_udp_on_win()
endif()
這段配置代碼 僅配置一個可執行程項目。cmake語法不是本文的重點。
cmake tools 插件配置
- 一定要理解, VScode僅僅是一個軟件,沒有Visual studio 2017這樣的IDE集成度高,什么都配置好了。
- 打開VScode 的設置, 鍵入: cmake
設置cmake.exe所在路徑,如圖,我的cmake安裝在C:\major\development\tools\cmake_64\bin目錄下,同時將cmake.exe添加到目錄后面,指定cmake的絕對路徑。
開始編譯代碼
下面的操作都是基於: ctrl + shift + p 快捷鍵。
1. select a kit
按下快捷鍵 ctrl + shift + p , 鍵入: cmake:select a kit, 回車選擇適合自己的工具包。
我這里演示的是x86
2. select variant
按下快捷鍵 ctrl + shift + p , 鍵入: cmake:select variant
因為要演示調試,這里選擇 debug.
build
按下快捷鍵 ctrl + shift + p , 鍵入: cmake:build, 選擇 cmake:build**.  觀察
輸出`窗口, 可以看到已經編譯成功
debug調試
設置好斷點,按下快捷鍵 ctrl + shift + p , 鍵入: cmake:debug , 程序將執行,並停在斷點所在位置,
調試快捷鍵和VS開發IDE一致。
左側可以觀察變量的值。
繼續運行F5
F5, 程序將運行結束。
補充(可有可無)
如果你更改了 cmakelists.txt文件,可以使用命令 cmake:configure實現項目配置,再執行build就OK了