欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VSCODE+cmake配置C++開發(fā)環(huán)境的實現(xiàn)步驟

 更新時間:2021年03月10日 11:43:14   作者:ha_____ha  
這篇文章主要介紹了VSCODE+cmake配置C++開發(fā)環(huán)境的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1.引言

在實習期間,感受到在vs code上編程的優(yōu)勢(實習期間主要寫的lua腳本),因此想把C++和python的開發(fā)也遷移到vs code上。如果只運行一個簡單的.cpp文件,那么使用萬能的Code Runner插件就可以完成編譯等任務(wù)。但是,一般的C++開發(fā)中,不可能只有一個.cpp文件,還會自定義頭文件和相應(yīng)的源文件,此時Code Runner就無法滿足我們的要求。對于編譯多個C++源文件,我網(wǎng)上查到的資料主要有兩種方法:

(1)配置tasks.json文件

在tasks.json文件設(shè)置args參數(shù),制定需要編譯的多個文件

(2)cmake編譯多個C++源文件

2.cmake配置過程

 2.1 預(yù)先安裝

在windows環(huán)境下,首先預(yù)先完成如下安裝

(1)安裝vscode

(2)安裝MinGW,并添加到環(huán)境變量

(3)安裝cmake,并添加環(huán)境變量

(4)vscode C++和cmake相關(guān)插件安裝,如圖

2.2 vscode cmake配置

(參考:http://www.dbjr.com.cn/article/207289.htm

(1)選擇vscode左上角,文件->首選項->設(shè)置->擴展中找到cmake tools configuration及Cmake: Preferred Generators,如圖打開settings.json文件

并增加如下配置,因為我們使用的是MinGW,mingw對應(yīng)首選生成器MinGW Makefiles

{
 "cmake.preferredGenerators": [
 "MinGW Makefiles"
 ]
}

 (2)同樣是在擴展一項中,找到cmake configuration,并將Cmake Path設(shè)置為前面cmake的安裝路徑,如圖

 在vscode終端中進行如下驗證,看是否成功

(3) c_cpp_properties.json配置

(參考:http://www.dbjr.com.cn/article/171801.htm

按下ctrl+shift+p,搜索c++ config,打開c_cpp_properties.json文件

在該文件中主要有三個參數(shù)需要修改:

  • compilerPath,自己安裝的MinGW編譯器路徑
  • intelliSenseMode,根據(jù)智能提示修改就行
  • configurationProvider

如圖 

2.3 CMakeLists.txt文件編寫

(參考:http://www.dbjr.com.cn/article/207291.htm,http://www.dbjr.com.cn/article/207293.htm

CMakeLists.txt文件編寫分為兩種情況,一種是main.cpp和其他自定義的cpp文件在同一路徑下,如圖

main.cpp和mathfunc.cpp都在lib目錄下,此時,CMakeLists.txt文件內(nèi)容如下:

# cmake最低版本要求
cmake_minimum_required(VERSION 3.10)
# 項目名名稱
project(testvscode)
# 頭文件路徑
include_directories(include)
# 枚舉指定目錄下的源文件,并添加到變量DIR_SRCS中
aux_source_directory(./lib DIR_SRCS)
# 生成可執(zhí)行文件
add_executable(testvscode ${DIR_SRCS})

另一種情況下,main.cpp和自定義的cpp文件不在同一路徑下,如圖:

此時,lib文件夾內(nèi)和外層目錄(有cpp文件的地方就要有CMakeLists.txt)都要編寫CMakeLists.txt。

其中,lib文件夾內(nèi)CMakeLists.txt內(nèi)容如下:

# 枚舉指定目錄下的源文件,并添加到變量DIR_LIB_SRCS中
aux_source_directory(. DIR_LIB_SRCS)
# 將源文件枚舉變量添加到LIB_SRCS庫文件中
add_library(LIB_SRCS ${DIR_LIB_SRCS})

而外層的CMakeLists.txt內(nèi)容如下:

# cmake最低版本號要求
cmake_minimum_required(VERSION 3.10)
# 指定的項目名
project(testvscode)
# 添加頭文件目錄
include_directories(include)
# 添加lib子目錄
add_subdirectory(lib)
#指定生成的可執(zhí)行文件,第一個參數(shù)為文件名
add_executable(${PROJECT_NAME} main.cpp)
# 設(shè)置可執(zhí)行文件的輸出路徑
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
#添加連接庫
target_link_libraries(${PROJECT_NAME} LIB_SRCS)

 2.4cmake編譯

最后附上幾個C++頭文件和源文件代碼:

mathfunc.h

double scjfunc(double a, double b);

mathfunc.cpp

#include "mathfunc.h"
 
double scjfunc(double a,double b)
{
 return a*b*b;
}

main.cpp

#include<iostream>
#include"mathfunc.h"
 
using namespace std;
 
int main()
{
 double a,b;
 cout<<"enter a and b: "<<endl;
 cin>>a>>b;
 cout<<"a*b*b= "<<scjfunc(a,b)<<endl;
 
 system("pause");
 return 0;
}

3.總結(jié)

初次使用cmake,記錄了一些使用心得,但不保證有些設(shè)置方法是最優(yōu)的,有些理解是正確的,后面會不斷學習不斷改進,也希望大家多提提意見。 

注:如果cmake編譯出現(xiàn)“cmake-file-api 的代碼模型版本(2.1)不是預(yù)期版本。應(yīng)為 (2.0)。IntelliSense 配置可能不正確”錯誤,參考(https://blog.csdn.net/nick_young_qu/article/details/107876532)解決。

到此這篇關(guān)于VSCODE+cmake配置C++開發(fā)環(huán)境的實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)VSCODE+cmake配置C++環(huán)境內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一起來練習C++的指針

    一起來練習C++的指針

    這篇文章主要為大家詳細介紹了C++的指針,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++算法之在無序數(shù)組中選擇第k小個數(shù)的實現(xiàn)方法

    C++算法之在無序數(shù)組中選擇第k小個數(shù)的實現(xiàn)方法

    這篇文章主要介紹了C++算法之在無序數(shù)組中選擇第k小個數(shù)的實現(xiàn)方法,涉及C++數(shù)組的遍歷、判斷、運算等相關(guān)操作技巧,需要的朋友可以參考下
    2017-03-03
  • 詳解C++虛函數(shù)表存儲位置

    詳解C++虛函數(shù)表存儲位置

    相信大家知道虛表指針和虛函數(shù)存儲的位置,但對于虛函數(shù)表的存儲位置一時無法確定。本文就來和大家詳細聊聊相關(guān)內(nèi)容,希望對大家有所幫助
    2023-04-04
  • C++容器算法示例詳解

    C++容器算法示例詳解

    在談到容器算法,我們大概率會用到謂詞predicate,謂詞返回的類型是布爾類型(bool)可以是lambda表達式、函數(shù)對象以及其它可調(diào)用的對象,這篇文章主要介紹了C++容器算法,需要的朋友可以參考下
    2024-08-08
  • C語言超詳細講解getchar函數(shù)的使用

    C語言超詳細講解getchar函數(shù)的使用

    C 庫函數(shù) int getchar(void) 從標準輸入 stdin 獲取一個字符(一個無符號字符)。這等同于 getc 帶有 stdin 作為參數(shù),下面讓我們詳細來看看
    2022-05-05
  • C語言深入回顧講解結(jié)構(gòu)體對齊

    C語言深入回顧講解結(jié)構(gòu)體對齊

    C 數(shù)組允許定義可存儲相同類型數(shù)據(jù)項的變量,結(jié)構(gòu)是 C 編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許你存儲不同類型的數(shù)據(jù)項,本篇讓我們來了解C 的結(jié)構(gòu)體內(nèi)存對齊
    2022-06-06
  • Qt無邊框窗口拖拽和陰影的實現(xiàn)

    Qt無邊框窗口拖拽和陰影的實現(xiàn)

    自定義窗口控件的無邊框,窗口事件由于沒有系統(tǒng)自帶邊框,無法實現(xiàn)拖拽拉伸等事件的處理,本文主要介紹了Qt無邊框窗口拖拽和陰影的實現(xiàn),感興趣的可以了解一下
    2024-01-01
  • C++入門概覽和嘗試創(chuàng)建第一個C++程序

    C++入門概覽和嘗試創(chuàng)建第一個C++程序

    這篇文章主要介紹了C++入門概覽和嘗試創(chuàng)建第一個C++程序,同時也包括編寫類的示例展示C++面向?qū)ο蟮奶匦?需要的朋友可以參考下
    2015-09-09
  • C/C++ 原生API實現(xiàn)線程池的方法

    C/C++ 原生API實現(xiàn)線程池的方法

    線程池,簡單來說就是有一堆已經(jīng)創(chuàng)建好的線程,接下來通過本文給大家介紹C/C++ 原生API實現(xiàn)線程池的方法,感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • c++中map容器的使用詳解

    c++中map容器的使用詳解

    這篇文章主要介紹了c++中map容器的使用詳解,C++中map容器提供一個鍵值對容器,map與multimap差別僅僅在于multiple允許一個鍵對應(yīng)多個值,需要的朋友可以參考下
    2023-08-08

最新評論