VSCode + CMake + googletest 基本入門

近期在學習Ubuntu上cpp編程的內容,整理以下VSCode與cpp相關的開發環境部署內容,以及gtest測試(後面看一下如何進行覆蓋度測試)

準備工作

OS: Ubuntu 16.04 LTS
步驟:

  1. 配置VSCode開發環境
  2. 安裝GTest
  3. 項目實例

1. 配置VSCode開發環境

1.1 安裝VSCode

這裏採用是從VScode官網下載.deb文件進行安裝。
在這裏插入圖片描述
安裝完成後,打開VSCode,主界面如下:
在這裏插入圖片描述

1.2 插件配置

通過左側的Extension安裝插件,操作如下
在這裏插入圖片描述
需要安裝的插件有
C/C++ (Microsoft)
CMake Tools(Microsoft)
GitLens(Eric Amodio)

2. CMake安裝與測試

2.1 CMake安裝

我的筆記本中已經安裝了cmake,因此這部分沒有進行安裝測試。
在terminal下鍵入依次以下命令進行CMake的安裝

wget https://cmake.org/files/v3.14/cmake-3.14.5-Linux-x86_64.tar.gz
tar -xvf cmake-3.14.5.tar
cd cmake-3.14.5
./bootstrap 
make
make install

個人的偏好,如果要一鍵安裝,可將上述的語句寫入到一個install_cmake.sh的文件中,chmod爲777.

執行結束後,在terminal中執行 cmake --version查看安裝版本號。

2.2 CMake測試

在VSCode中打開一個新建的Folder,並新建main.cpp文件,內容很簡單,hello world。

#include <iostream>

using namespace std;

int main(){
    cout<<"Hello World!"<<endl;
    return 0;
}

按【F1】後進行CMake的配置
在這裏插入圖片描述
選擇一個編譯器,這裏我選擇了GCC for x86_64-linux-gnu 5.4.0
在這裏插入圖片描述
選擇結束後,右側提示CMakeLists.txt還不存在,需要創建一個CMakeLists.txt,點擊Create創建,在上方填入項目名,選擇executable,回車即可,生成的CMakeLists.txt如下所示

cmake_minimum_required(VERSION 3.0.0)
project(Project VERSION 0.1.0)

include(CTest)
enable_testing()

add_executable(Project main.cpp)

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

按【F7】進行編譯,編譯結束後,在build路徑下執行./Project,可以看到輸出了Hello World!

3. GTest安裝與測試

3.1 GTest安裝

# 下載最新的release 並保存爲 googletest-1.8.1.tar.gz
wget -O googletest-1.8.1.tar.gz https://github.com/google/googletest/archive/release-1.8.1.tar.gz
# 解壓
tar -zxf googletest-1.8.1.tar.gz
# 進入解壓後的目錄
cd googletest-release-1.8.1
# 爲編譯創建一個目錄
mkdir build && cd build
cmake ..
make
# 安裝
sudo make install

3.2 GTest測試

#include <gtest/gtest.h>

int add(int a, int b){
    return a+b;
}

TEST(testCase, test0){
    EXPECT_EQ(add(2,3),5);
}

int main(int argc, char **argv){
    testing::InitGoogleTest(&argc,argv);
    return RUN_ALL_TESTS();
}

執行下列命令

g++ test.cpp -lgtest -lpthread
./a.out

在這裏插入圖片描述

整體配置

項目的大致結構簡單定義如下

├── CMakeLists.txt
├── main.cpp
├── src
│   └── myproject
│       └── myclass.hpp
└── test
    ├── CMakeLists.txt
    └── test_my_class.cpp

挖坑,這周補上。

這裏參考https://blog.csdn.net/joelcat/article/details/90766192

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章