国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

CMake快速使用+VSCode開發(fā)(調(diào)試)

這篇具有很好參考價(jià)值的文章主要介紹了CMake快速使用+VSCode開發(fā)(調(diào)試)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

CMake學(xué)習(xí)使用

1、cmake安裝和入門使用

1.1 安裝
sudo apt install cmake	# 即可安裝

cmake -version  # 查看安裝的cmake版本

cmake vscode,vscode,c++,linux,ide,vim

1.2 簡(jiǎn)單程序使用cmake

在指定的目錄中作為項(xiàng)目目錄,里面只有一個(gè)Apply.cpp文件。此外為了使用cmake,需要有一個(gè)CMakeLists.txt文件。內(nèi)容如下:

cmake vscode,vscode,c++,linux,ide,vim

在項(xiàng)目目錄中創(chuàng)建一個(gè)build文件夾,然后進(jìn)入該目錄進(jìn)行命令的操作。如下:

cmake vscode,vscode,c++,linux,ide,vim

此時(shí),有了Makefile文件,然后可以使用make命令來生成可執(zhí)行程序app,如下:

cmake vscode,vscode,c++,linux,ide,vim

最后可以使用app來執(zhí)行程序。如果需要?jiǎng)h除app可執(zhí)行文件,可以使用make clean然后app就會(huì)被清理掉,再使用make又可以重新生成。

1.3 總結(jié)三個(gè)cmake命令
# 1、設(shè)置對(duì)cmake的最小版本,這里設(shè)置了要求的最低版本是3.0
cmake_minimum_required(VERSION 3.0)

# 2、設(shè)置工程名為apply,此外還可以設(shè)置工程的版本,以及對(duì)工程的描述。
project(apply VERSION 1.0 DESCRIPTION "這是一個(gè)簡(jiǎn)單的工程")

# 3、生成可執(zhí)行文件
add_executable(app Apply.cpp)
# add_executable(exename source1 source2 ... sourceN)
# 第一個(gè)參數(shù)為可執(zhí)行程序名,后面的是n多個(gè)cpp文件

2、項(xiàng)目級(jí)的組織結(jié)構(gòu)

2.1 項(xiàng)目結(jié)構(gòu)安排

cmake vscode,vscode,c++,linux,ide,vim

4.0.1目錄是項(xiàng)目目錄,其中include是項(xiàng)目的頭文件,所有頭文件都放在這里面;src是cpp源文件的目錄;build是cmake命令生成的相關(guān)的文件的目錄(Makefile);bin目錄是make命令之后生成的目標(biāo)對(duì)象的存放目錄(可執(zhí)行文件、靜態(tài)庫、動(dòng)態(tài)庫)。CMakeLists.txt文件內(nèi)容如下:

# cmake配置

# 1、設(shè)置對(duì)cmake的最小版本
cmake_minimum_required(VERSION 3.0)

# 2、設(shè)置工程名
project(apply VERSION 12.0 DESCRIPTION "這是一個(gè)項(xiàng)目級(jí)別的工程")

# 3、指定需要的頭文件目錄
include_directories(include) # 相對(duì)于CMakeLists.txt所在的目錄

# 4、獲取指定目錄下的所有cpp文件,用SRC_LIST變量代替
# 如果src目錄下的cpp文件很多,在生成可執(zhí)行文件時(shí)一個(gè)個(gè)寫出來十分不便,所以可以使用這個(gè)命令方便使用
# aux_source_directory(src SRC_LIST)

# 4.1
# aux_source_directory雖然能夠很方便的獲取所有cpp,但是某些情況下有部分cpp不需要,此時(shí)可以使用set命令解決
set(
    SRC_LIST 
    ./src/Computer.cpp
    ./src/Log.cpp
    ./src/main.cpp
)

# 5、生成可執(zhí)行文件,這里的所有cpp文件用變量替代
add_executable(app ${SRC_LIST})

# 6、設(shè)置目標(biāo)對(duì)象(可執(zhí)行文件)的輸出目錄。即app可執(zhí)行文件就會(huì)輸出到bin目錄中
# EXECUTABLE_OUTPUT_PATH是cmake中已定義的變量,表示目標(biāo)二進(jìn)制可執(zhí)行文件的存放位置
# PROJECT_SOURCE_DIR 是工程根目錄的變量
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

2.2 命令總結(jié)
# 1、設(shè)置變量set(varname value1 value2 ...)
# 設(shè)置cpp文件集合的變量,即通過SRC_LIST替代所有cpp文件
set(SRC_LIST main.cpp foo.cpp bar.cpp)
# 增加編譯選項(xiàng),CMAKE_CXX_FLAGS是cmake系統(tǒng)的變量
set(CMAKE_CXX_FLAGS "-O2 -Wall")

# 2、向工程添加多個(gè)特定的頭文件搜索路徑 --->相當(dāng)于指定g++編譯器的-I參數(shù)
# 語法: include_directories(dir1 dir2 ...)
include_directories(include1 include2 ...)

# 3、aux_source_directory獲取指定目錄下的所有cpp資源文件
aux_source_directory(src SRC_LIST)   # 獲取src目錄下的cpp資源文件,將其用變量SRC_LIST替代

# 4、添加編譯選項(xiàng),相當(dāng)于-std=c++11 -g -Wall等
add_compile_options(-Wall -g -std=c++11)

3、靜態(tài)庫和動(dòng)態(tài)庫的生成

3.1 項(xiàng)目結(jié)構(gòu)

cmake vscode,vscode,c++,linux,ide,vim

# cmake配置

# 1、設(shè)置對(duì)cmake的最小版本
cmake_minimum_required(VERSION 3.0)

# 2、設(shè)置工程名
project(apply VERSION 12.0 DESCRIPTION "這是一個(gè)關(guān)于庫的工程")

# 3、指定需要的頭文件目錄
include_directories(include)

# 4、獲取指定目錄下的所有cpp文件,用SRC_LIST變量代替
aux_source_directory(src SRC_LIST)

# 5、生成靜態(tài)庫文件和動(dòng)態(tài)庫文件,這里的所有cpp文件用變量替代
add_library(kiki_so SHARED ${SRC_LIST})
add_library(kiki_a STATIC ${SRC_LIST})

# 設(shè)置輸出對(duì)象的名稱
set_target_properties (kiki_so PROPERTIES OUTPUT_NAME "kiki")
set_target_properties (kiki_a PROPERTIES OUTPUT_NAME "kiki")

# 6、設(shè)置庫的輸出目錄
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

輸出結(jié)果如下:

cmake vscode,vscode,c++,linux,ide,vim

3.2 總結(jié)命令
# 1、生成庫文件(包括動(dòng)態(tài)庫和靜態(tài)庫)
add_library(libname [SHARED|STATIC] source1 source2 ... sourceN) 

# 2、設(shè)置庫的輸出目錄
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
# EXECUTABLE_OUTPUT_PATH 變量是可執(zhí)行文件的輸出目錄變量
# LIBRARY_OUTPUT_PATH 變量是動(dòng)態(tài)庫靜態(tài)庫的輸出目錄變量

# 3、用于設(shè)置一個(gè)目標(biāo)的屬性。這個(gè)命令通常用于設(shè)置生成的可執(zhí)行文件、靜態(tài)庫或動(dòng)態(tài)庫的一些屬性。
set_target_properties(
    <target> 
    PROPERTIES 
    <prop1> <value1> 
    <prop2> <value2>
    ...
) 
# 所以,第一個(gè)target通常是add_libary和add_executable所生成的對(duì)象。OUTPUT_NAME屬性表示輸出的文件名
# 這個(gè)命令通常設(shè)置的屬性有:
* OUTPUT_NAME:指定生成的目標(biāo)的名稱。默認(rèn)情況下,生成的目標(biāo)的名稱與目標(biāo)的名稱相同,但是可以通過 OUTPUT_NAME 屬性來自定義名稱。
* LIBRARY_OUTPUT_DIRECTORY:指定生成的動(dòng)態(tài)庫的輸出目錄。默認(rèn)情況下,生成的動(dòng)態(tài)庫將被放置在構(gòu)建目錄下,但是可以通過 LIBRARY_OUTPUT_DIRECTORY 屬性來自定義輸出目錄。
設(shè)置這個(gè)屬性類似于set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)的效果,但是這個(gè)會(huì)將所有目標(biāo)都輸出到指定的目錄中;如果通過這個(gè)屬性設(shè)置,可以設(shè)置指定的目標(biāo)到指定的目錄中。如上面的兩個(gè)庫,可以將其中一個(gè)動(dòng)態(tài)庫對(duì)象輸出到其他目錄中。不可以輸出改變靜態(tài)庫的輸出目錄。
* ARCHIVE_OUTPUT_DIRECTORY:指定生成的靜態(tài)庫的輸出目錄。同LIBRARY_OUTPUT_DIRECTORY屬性的功能。
* RUNTIME_OUTPUT_DIRECTORY:指定生成的可執(zhí)行文件的輸出目錄。set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)功能類似。

4、使用靜態(tài)庫和動(dòng)態(tài)庫

4.1 項(xiàng)目結(jié)構(gòu)

cmake vscode,vscode,c++,linux,ide,vim

# 使用動(dòng)態(tài)庫靜態(tài)庫

# 設(shè)置項(xiàng)目對(duì)cmake的最低要求
cmake_minimum_required(VERSION 3.25)

# 設(shè)置工程名以及版本
project(AppSO VERSION 2.1)

# 設(shè)置頭文件變量,其包含所有需要的頭文件。
# 第一個(gè)目錄是本項(xiàng)目的,第二個(gè)是動(dòng)態(tài)庫的頭文件目錄,第三個(gè)是靜態(tài)庫頭文件目錄
set(headers include ../3.29.3/include ../3.29.5/include)

# 設(shè)置頭文件變量到項(xiàng)目中
include_directories(${headers})

# 設(shè)置編譯選項(xiàng)
add_compile_options(-Wall -std=c++11 -g)

# 設(shè)置資源變量
set(cpps src/program.cpp src/main.cpp)

# 生成指定的可執(zhí)行程序
add_executable(apply ${cpps})

# 情況一:libtps.so放在/usr/lib目錄中
# 找到動(dòng)態(tài)庫,這里是已經(jīng)把libtps.so放到了默認(rèn)索的路徑中
# find_library(TPS_LIB_VAR tps) 
# 添加動(dòng)態(tài)庫連接相當(dāng)于g++ -l
# target_link_libraries(app ${TPS_LIB_VAR})

# 情況二:是不將動(dòng)態(tài)libtps.so放到指定默認(rèn)的搜索目錄中
# add_library命令創(chuàng)建一個(gè)名為tps的目標(biāo),表示一個(gè)動(dòng)態(tài)庫。IMPORTED選項(xiàng)告訴CMake這個(gè)目標(biāo)不是通過源代碼編譯出來的,而是外部已經(jīng)編譯好的目標(biāo)。
# 然后使用set_target_properties命令設(shè)置tps目標(biāo)的屬性,其中IMPORTED_LOCATION屬性指定了動(dòng)態(tài)庫文件的路徑。
# 最后,target_link_libraries命令將動(dòng)態(tài)庫鏈接到app可執(zhí)行文件中。命令如下:
# add_library(tps_obj SHARED IMPORTED)
# set_target_properties(tps_obj PROPERTIES IMPORTED_LOCATION /home/yoyo/workspaces/cmakes/3.29.3/build/libtps.so)
# target_link_libraries(app tps_obj)

# 情況三:與情況二相同,只是操作方式不同
find_library(TPS_LIB_VAR_ tps HINTS /home/yoyo/workspaces/cmakes/3.29.3/build/)
# 第二個(gè)目錄是靜態(tài)庫文件(靜態(tài)庫比較簡(jiǎn)單,直接寫就行)
set(libs ${TPS_LIB_VAR_} /home/yoyo/workspaces/cmakes/3.29.5/build/libstps.a)

# 連接所有的庫
target_link_libraries(apply ${libs})

# 設(shè)置可執(zhí)行程序的輸出目錄
set_target_properties(apply PROPERTIES
    RUNTIME_OUTPUT_DIRECTORY "../bin"
)
4.2 總結(jié)命令
# 1、find_library: 在指定目錄下查找指定庫,并把庫的絕對(duì)路徑存放到變量里,其第一個(gè)參數(shù)是變量名稱,第二個(gè)參數(shù)是庫名稱,第三個(gè)參數(shù)是HINTS,第4個(gè)參數(shù)是路徑。表示在指定的目錄下找對(duì)應(yīng)庫名稱的庫,用第一個(gè)參數(shù)變量名稱保存。如果不寫第三個(gè)和第四個(gè)參數(shù)就默認(rèn)在系統(tǒng)默認(rèn)的目錄中搜索庫。

# 2、target_link_libraries:鏈接庫,第一個(gè)參數(shù)是可執(zhí)行程序目標(biāo)對(duì)象,第二個(gè)參數(shù)是庫。

VSCode調(diào)試運(yùn)行

VSCode調(diào)試配置

cmake vscode,vscode,c++,linux,ide,vim

#### launch.json文件配置
{
    // 使用 IntelliSense 了解相關(guān)屬性。 
    // 懸停以查看現(xiàn)有屬性的描述。
    // 欲了解更多信息,請(qǐng)?jiān)L問: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ - 生成和調(diào)試活動(dòng)文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/bin/apply",  ### 配置可執(zhí)行文件
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/usr/bin/gdb",
            "preLaunchTask": "Build",       ### 還需要配置任務(wù)json文件,配置這個(gè)可以避免修改源碼之后需要手動(dòng)make重新生成。這個(gè)Build是task.json文件中一個(gè)label
        }
    ]
}
#### tasks.json文件配置
{
    "version": "2.0.0",
    "options": {
        "cwd": "${workspaceFolder}/build"
    },
    "tasks": [
        {
            "type": "shell",
            "label": "cmake",
            "command": "cmake",
            "args": [
                ".."
            ]
        },
        {
            "label": "make",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "command": "make",
            "args": []
        },
        {
            "label": "Build",   ### launch.json中選擇了這個(gè)
            "dependsOrder": "sequence",
            "dependsOn": [
                "cmake",
                "make"
            ]
        }
    ]
}

cmake vscode,vscode,c++,linux,ide,vim
cmake vscode,vscode,c++,linux,ide,vim文章來源地址http://www.zghlxwxcb.cn/news/detail-779660.html

到了這里,關(guān)于CMake快速使用+VSCode開發(fā)(調(diào)試)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Ubuntu使用cmake和vscode開發(fā)自己的項(xiàng)目,引用自己的頭文件和openCV

    Ubuntu使用cmake和vscode開發(fā)自己的項(xiàng)目,引用自己的頭文件和openCV

    創(chuàng)建文件夾 繼續(xù)創(chuàng)建include 和 src文件夾,形成如下的目錄結(jié)構(gòu) 用vscode打開項(xiàng)目 創(chuàng)建add.h add.cpp main.cpp 形成這樣的目錄結(jié)構(gòu) 在my_proj中創(chuàng)建CMakeLists.txt,寫入如下內(nèi)容 BUILD_TYPR 設(shè)置為Debug可以打斷點(diǎn)調(diào)試 在my_proj中創(chuàng)建build.sh,寫入如下內(nèi)容 修改build.sh文件的權(quán)限 運(yùn)行build.sh 在

    2024年02月07日
    瀏覽(21)
  • VsCode CMake調(diào)試QT QString等變量不顯示具體值,調(diào)試中查看qt源碼 (可視化調(diào)試配置Natvis)

    VsCode CMake調(diào)試QT QString等變量不顯示具體值,調(diào)試中查看qt源碼 (可視化調(diào)試配置Natvis)

    遇到的問題 當(dāng)我們?cè)赩sCode使用CMake來調(diào)試QT程序時(shí),可能會(huì)出現(xiàn)變量是十六進(jìn)制的地址,而看不到具體的值。例如: 如何解決 這時(shí)候需要手動(dòng)設(shè)置一下 natvis (資源以上傳,可以直接下載) 在 .vscode 文件下找到 settings.json 文件 在 settings.json 文件中加入下述代碼 稍微解釋一下

    2024年01月25日
    瀏覽(39)
  • CMake學(xué)習(xí)筆記-VSCode使用Cmake編譯C++工程

    Win + MinGW + CMake + Git 官方教程1: https://cmake.org/cmake/help/latest/guide/tutorial/A%20Basic%20Starting%20Point.html 官方教程2: https://cmake.org/cmake/help/book/mastering-cmake/cmake/Help/guide/tutorial/index.html 官方練習(xí)材料1:https://github.com/Kitware/CMake.git 官方練習(xí)材料2:https://github.com/Kitware/CMake/blob/master/Help/guide

    2024年02月11日
    瀏覽(24)
  • VSCode之CMake使用

    VSCode之CMake使用

    下載 對(duì)應(yīng)平臺(tái)的VScode 安裝C++擴(kuò)展 安裝Cmake 工具擴(kuò)展 并行需要安裝 Cmake,編譯器,調(diào)試器和構(gòu)建工具 雖然咱們使用VSCode編輯代碼,但是 編譯、調(diào)試工作,卻是使用的是 系統(tǒng)的 編譯器、調(diào)試器和像Cmake這樣的構(gòu)建工具。 因此也要做 針對(duì)性檢查 ,我們這里就略過了。 針對(duì)新項(xiàng)

    2024年02月16日
    瀏覽(17)
  • ubuntu 搭建 cmake + vscode 的 c/c++ 開發(fā)環(huán)境

    ubuntu 搭建 cmake + vscode 的 c/c++ 開發(fā)環(huán)境

    clang-format c++ 整合 略 只需要安裝如下兩個(gè)插件即可 c/c++ 擴(kuò)展是為了最基本的代碼提示和調(diào)試支持 cmake language support 是為了提示 CMakeLists.txt 腳本 有可能安裝了 cmake language support 還是沒有代碼提示, 注意配置 cmake 路徑 main.cpp CMakeLists.txt 此時(shí)可以通過 終端 菜單的 運(yùn)行任務(wù) 來運(yùn)

    2024年02月08日
    瀏覽(20)
  • VSCODE使用CMAKE顯示命令無法找到

    VSCODE使用CMAKE顯示命令無法找到

    背景:使用了code server,安裝CMAKE和CMAKE TOOLS,但是通過ctrl+shift+p打開命令面板,運(yùn)行隨便一個(gè)cmake指令,都出現(xiàn)了指令無法找到。具體為“命令\\\"CMake: 配置\\\"導(dǎo)致錯(cuò)誤 (command ‘cmake.configure’ not found)”。 C++工程 通過C++ Create project創(chuàng)建要給C++工程,里面創(chuàng)建好了src、include、lib和

    2024年01月18日
    瀏覽(21)
  • c++項(xiàng)目環(huán)境搭建(VMware+linux+ubantu+vscode+cmake)

    c++項(xiàng)目環(huán)境搭建(VMware+linux+ubantu+vscode+cmake)

    想運(yùn)行一個(gè)c++項(xiàng)目,但是環(huán)境怎么整呢?b站走起?。?! 鏈接:https://pan.baidu.com/s/1XJbR2F1boQ-CqV8P71UOqw? 提取碼:swin 八分鐘完成VMware和ubuntu系統(tǒng)安裝_嗶哩嗶哩_bilibili 按照視頻來就行,別直接在計(jì)算機(jī)上安裝linux系統(tǒng),嗚嗚嗚~~~找到一個(gè)博客,我跟著走之后發(fā)現(xiàn)硬盤被格式化了,

    2024年02月05日
    瀏覽(26)
  • VSCode+CMake+Arm GNU Toolchain搭建GD32開發(fā)環(huán)境

    VSCode+CMake+Arm GNU Toolchain搭建GD32開發(fā)環(huán)境

    一個(gè)串口收發(fā)簡(jiǎn)單例子。 https://github.com/Huffer342-WSH/GD32_CMake_Example 可以下載該工程,稍微了解一點(diǎn)cmake就可以簡(jiǎn)單修改直接使用。 GD32 CMake example 使用到的工具 編譯與燒錄 命令行 VSCode 調(diào)試 配合VSCode的marus25.cortex-debug插件實(shí)現(xiàn)調(diào)試功能 RTT使用方法 marus25.cortex-debug 手動(dòng)連接 注意

    2024年02月11日
    瀏覽(57)
  • 測(cè)試驅(qū)動(dòng)的嵌入式開發(fā) 002:VSCode + CMake + Unity 環(huán)境搭建

    測(cè)試驅(qū)動(dòng)的嵌入式開發(fā) 002:VSCode + CMake + Unity 環(huán)境搭建

    本文是對(duì)《測(cè)試驅(qū)動(dòng)的嵌入式 C 語言開發(fā)》第二章的實(shí)踐。 這部分參考博文《基于Windows 的 VS Code C/C++ 編譯環(huán)境搭建》。 安裝 CMake ,在官網(wǎng)下載最新安裝包。安裝時(shí)選擇 對(duì)所有用戶添加 CMake 到系統(tǒng) PATH 。 安裝以下插件: CMake:VSCode 的 CMake 語言支持插件 CMake Tools:對(duì)插件

    2023年04月18日
    瀏覽(25)
  • ubuntu 上vscode使用cmake編譯運(yùn)行c++程序

    參考:ubuntu 上vscode使用cmake編譯運(yùn)行c++程序_vscode ubuntu運(yùn)行c++程序_SCH0的博客-CSDN博客 文章是對(duì)官方過程的翻譯: Get started with CMake Tools on Linux

    2024年02月07日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包