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

VSCode使用clangd構(gòu)建Linux驅(qū)動(dòng)開(kāi)發(fā)環(huán)境

這篇具有很好參考價(jià)值的文章主要介紹了VSCode使用clangd構(gòu)建Linux驅(qū)動(dòng)開(kāi)發(fā)環(huán)境。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


前言

最初在使用Linux內(nèi)核源碼進(jìn)行驅(qū)動(dòng)開(kāi)發(fā)時(shí),由于沒(méi)有代碼補(bǔ)全、自動(dòng)提示等功能寫起來(lái)十分不方便,雖然有人使用Source Insight來(lái)閱讀源碼,但是我用起來(lái)還是感覺(jué)怪怪的,有時(shí)間同一個(gè)函數(shù)會(huì)找到很多的定義,不便判斷。在調(diào)用層次方面,還是clangd更好用。


一、VSCode安裝clangd插件并搭建環(huán)境

Clangd 是一個(gè)基于 Clang 的語(yǔ)言服務(wù)器,它提供了代碼智能感知和導(dǎo)航功能。通過(guò)與 VSCode 集成,可以實(shí)現(xiàn)以下功能:

  • 代碼補(bǔ)全和自動(dòng)提示:Clangd 可以根據(jù)代碼上下文提供準(zhǔn)確的補(bǔ)全建議和自動(dòng)提示,幫助開(kāi)發(fā)者快速編寫代碼。
  • 代碼跳轉(zhuǎn)和導(dǎo)航:Clangd 可以識(shí)別代碼中的符號(hào)引用、函數(shù)調(diào)用等,并支持跳轉(zhuǎn)到定義、查看聲明等操作,便于閱讀和理解復(fù)雜的內(nèi)核源代碼。
  • 實(shí)時(shí)錯(cuò)誤和警告檢查:Clangd 可以實(shí)時(shí)檢查代碼中的語(yǔ)法錯(cuò)誤、潛在問(wèn)題和警告信息,幫助開(kāi)發(fā)者及早發(fā)現(xiàn)和修復(fù)問(wèn)題。
  • 重構(gòu)支持:Clangd 提供了一些重構(gòu)功能,如重命名變量、提取函數(shù)等,可以簡(jiǎn)化代碼重構(gòu)的過(guò)程。

1、安裝插件

vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

2、禁用或卸載Microsoft C/C++ Intelligence

因?yàn)楹蚦langd有沖突,這種語(yǔ)法高亮的插件往往只能二者存其一。
vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

3、安裝clangd安裝包

VSCode clangd插件本身是不能運(yùn)行的,它還需要clangd的環(huán)境,所以接下來(lái)安裝clangd。

下載地址
在Ubuntu中最好不要使用apt安裝,因?yàn)榘姹颈容^舊,建議下載后手動(dòng)安裝。
vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)
解壓后,
將bin文件夾下的 clangd 移動(dòng)到 /usr/bin 目錄下,
將lib文件夾下的所有移動(dòng)到 /usr/local/lib 目錄下。
之后打開(kāi)終端,鍵入:

clangd --version

vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)
就算成功。

4、修改拓展設(shè)置

修改正確clangd路徑:
vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

二、使用bear構(gòu)建源碼的 compile_commands.json文件

如果沒(méi)有bear的話就安裝一下:

sudo apt install bear

我使用的是韋東山的imx6ull-qemu模擬開(kāi)發(fā)板的內(nèi)核源碼,內(nèi)核編譯命令如下:

ml@ml-virtual-machine:~$ cd linux-4.9.88
ml@ml-virtual-machine:~$ make mrproper
ml@ml-virtual-machine:~$ make 100ask_imx6ull_qemu_defconfig
ml@ml-virtual-machine:~$ bear make zImage -j4 //編譯zImage 內(nèi)核
ml@ml-virtual-machine:~$ make clean  // 清除生成文件

倒數(shù)第二條帶有bear的指令就是生成compile_commands.json文件的。

compile_commands.json文件記錄了你的工程是如何構(gòu)建的,使用到了哪些源碼文件,源碼文件之間的包含關(guān)系,引用路徑之類的,這些可以幫助clangd構(gòu)建符號(hào)關(guān)系索引庫(kù)。
vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)
vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

三、修改compile_commands.json文件

目前,這個(gè)文件還不能用,需要修改編譯工具鏈成對(duì)應(yīng)的工具鏈,比如我這里需要全局替換:

"cc"  -->  "arm-linux-gnueabihf-gcc"

vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

保存后關(guān)閉VSCode,如果有.cache文件夾的話,刪除掉它。之后重新用VSCode打開(kāi)源碼目錄,隨便打開(kāi)一個(gè).c文件,clangd便自動(dòng)開(kāi)始索引文件了,索引文件會(huì)保存在 .cache 目錄下。
vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

如果這個(gè)過(guò)程特別快,只有幾秒鐘的話,那就是上述步驟有錯(cuò)誤。正常來(lái)說(shuō),這個(gè)索引過(guò)程會(huì)有幾分鐘。

vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

四、驅(qū)動(dòng)程序和應(yīng)用程序的編寫

對(duì)于驅(qū)動(dòng)程序來(lái)說(shuō),我的方法是在當(dāng)前源碼目錄下新建一個(gè)文件夾,在這個(gè)文件夾下進(jìn)行驅(qū)動(dòng)程序的編寫,這樣跳轉(zhuǎn)、補(bǔ)全之類的都比較方便。
vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

然后保存工作區(qū),方便下次打開(kāi):
vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

對(duì)應(yīng)用程序來(lái)說(shuō),不便放在源碼工作區(qū)當(dāng)中,可以像這樣單獨(dú)打開(kāi)一個(gè)用于編寫應(yīng)用程序:
vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

驅(qū)動(dòng)程序?qū)懲旰?,拷貝到?yīng)用程序所在目錄的驅(qū)動(dòng)程序文件中。
vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

此后,便可以方便快捷的編寫驅(qū)動(dòng)程序和應(yīng)用程序了。

五、配置文件的添加

clangd 是集成了 clang-tidy 和 clang-format 的,所以二者的配置文件也能在clangd下面使用。比如,我根據(jù)我的喜好更改了 format 格式和它的函數(shù)參數(shù)提示。
vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

.clangd 文件

# 提示嵌入,不使用函數(shù)參數(shù)嵌入提示
InlayHints:
    Designators: Yes
    Enabled: Yes
    ParameterNames: No
    DeducedTypes: Yes

CompileFlags:
    Add: [-xc, -Wall]

.clang-format 文件

BasedOnStyle: LLVM
UseTab: Never
IndentWidth: 4
TabWidth: 4

# 最外層大括號(hào)換行
# BreakBeforeBraces: Linux

BreakBeforeBraces: Allman
AllowShortIfStatementsOnASingleLine: true
IndentCaseLabels: false
ColumnLimit: 120

六、其它(可選)

如果你已經(jīng)配置完成,就不要在意這里的設(shè)置。

vscode clangd,vscode,linux,驅(qū)動(dòng)開(kāi)發(fā)

參考

使用VSCode clangd插件進(jìn)行l(wèi)inux內(nèi)核代碼閱讀和嵌入式開(kāi)發(fā)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-793003.html

到了這里,關(guān)于VSCode使用clangd構(gòu)建Linux驅(qū)動(dòng)開(kāi)發(fā)環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(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)文章

  • [ vscode + clangd + gcc + gdb + cmake] 一文帶你構(gòu)造C/C++開(kāi)發(fā)環(huán)境 #支持嵌入式開(kāi)發(fā) #超詳細(xì) #小白

    [ vscode + clangd + gcc + gdb + cmake] 一文帶你構(gòu)造C/C++開(kāi)發(fā)環(huán)境 #支持嵌入式開(kāi)發(fā) #超詳細(xì) #小白

    提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 提示:本節(jié)講解了為什么需要配置這樣一套開(kāi)發(fā)環(huán)境,可以跳過(guò) 本文力求通俗、詳細(xì)的講解 C程序開(kāi)發(fā) 環(huán)境配置。深入淺出的講解以及大量的圖片對(duì)小白更友好??赐瓯疚哪銓⒌玫揭惶?vscode + gcc + gdb

    2024年02月20日
    瀏覽(22)
  • VScode clangd 插件瀏覽 linux 源碼

    VScode clangd 插件瀏覽 linux 源碼

    VScode clangd 插件瀏覽代碼卻決于 compile_commands.json 文件 生成該文件有很多種方法 bear 命令 linux 內(nèi)核腳本 cmake 編譯選項(xiàng) VScode 插件安裝 在 VScode 插件商城搜索安裝即可 clangd 安裝 方法一 插件下載好之后任意打開(kāi)一個(gè) C/CPP 文件,vscode 下方會(huì)出現(xiàn)彈窗直接 install 即可(若網(wǎng)絡(luò)原因

    2024年02月06日
    瀏覽(45)
  • 【VSCode】VScode 配置 Linux 驅(qū)動(dòng)環(huán)境(簡(jiǎn)單版)

    【VSCode】VScode 配置 Linux 驅(qū)動(dòng)環(huán)境(簡(jiǎn)單版)

    在開(kāi)始編寫驅(qū)動(dòng)之前,我們需要保證良好的編碼環(huán)境,這里編寫代碼所使用的編輯器是VScode,如果進(jìn)行環(huán)境配置,可能會(huì)提示很多錯(cuò)誤,比如頭文件找不到、內(nèi)核函數(shù)的定義無(wú)法跳轉(zhuǎn)等等。 VScode 在這里只作為編輯器使用,配置的 是編輯環(huán)境 ,而 不是編譯環(huán)境 。 目錄 一、

    2024年02月08日
    瀏覽(23)
  • 【vscode基于clangd實(shí)現(xiàn)Android/Linux代碼跳轉(zhuǎn)】

    【vscode基于clangd實(shí)現(xiàn)Android/Linux代碼跳轉(zhuǎn)】

    背景: 在開(kāi)發(fā)大型工程例如Android或Linux時(shí)若我們使用vscode搭配官方的C/C++插件使用發(fā)現(xiàn),經(jīng)常很多代碼都無(wú)法跳轉(zhuǎn),代碼補(bǔ)全功能幾乎是廢的,通過(guò)網(wǎng)友以及同事身邊了解之后發(fā)現(xiàn) vscode+clangd可以實(shí)現(xiàn)代碼任意跳轉(zhuǎn)補(bǔ)全等功能 ,因此本文通過(guò)講解如何配置clangd相關(guān)環(huán)境實(shí)現(xiàn)高

    2024年02月11日
    瀏覽(24)
  • 【Linux驅(qū)動(dòng)】VScode 環(huán)境簡(jiǎn)單配置

    【Linux驅(qū)動(dòng)】VScode 環(huán)境簡(jiǎn)單配置

    在開(kāi)始編寫驅(qū)動(dòng)之前,我們需要保證良好的編碼環(huán)境,這里編寫代碼所使用的編輯器是VScode,如果進(jìn)行環(huán)境配置,可能會(huì)提示很多錯(cuò)誤,比如頭文件找不到、內(nèi)核函數(shù)的定義無(wú)法跳轉(zhuǎn)等等。 VScode 在這里只作為編輯器使用,配置的 是編輯環(huán)境 ,而 不是編譯環(huán)境 。 目錄 一、

    2024年02月14日
    瀏覽(19)
  • vscode使用ssh遠(yuǎn)程linux可視化開(kāi)發(fā)環(huán)境搭建

    vscode使用ssh遠(yuǎn)程linux可視化開(kāi)發(fā)環(huán)境搭建

    ??最近一直在做服務(wù)引擎開(kāi)發(fā),編譯都是在服務(wù)器 linux 環(huán)境中進(jìn)行。每次調(diào)試使用 gdb 修改使用vim賊麻煩。最后找了下可以使用 vscode 圖形化界面進(jìn)行遠(yuǎn)程開(kāi)發(fā)調(diào)試。嘗試了下,果然好使,故記錄下來(lái)備下次使用。 vscode 遠(yuǎn)程開(kāi)發(fā)環(huán)境搭建流程很簡(jiǎn)單,大體來(lái)說(shuō)分四步(如下

    2024年02月03日
    瀏覽(20)
  • Linux Debian12使用VSCode和Python搭建flask開(kāi)發(fā)環(huán)境

    Linux Debian12使用VSCode和Python搭建flask開(kāi)發(fā)環(huán)境

    一、安裝VSCode 在Linux Debian12系統(tǒng)上安裝VSCode教程可以參考網(wǎng)上相關(guān)教程。 二、安裝Python 打開(kāi)VSCode,安裝python和python擴(kuò)展包,如下圖所示: 三、創(chuàng)建Python虛擬環(huán)境 1.新建文件夾testFlask 2.用vscode打開(kāi)文件夾testFlask,選擇“是,我信任此作者” 3.在VSCode菜單“終端”-“新建終端”

    2024年01月17日
    瀏覽(35)
  • 看代碼神器:vscode+clangd輕松實(shí)現(xiàn)linux內(nèi)核代碼跳轉(zhuǎn)(圖文并茂)

    看代碼神器:vscode+clangd輕松實(shí)現(xiàn)linux內(nèi)核代碼跳轉(zhuǎn)(圖文并茂)

    一點(diǎn)感悟 還是那句老話:工欲善其事必先利其器。在做代碼開(kāi)發(fā)之前,先準(zhǔn)備好開(kāi)發(fā)過(guò)程幫助提效的工具,能起到事半功倍的效果。比如本文要講的vscode下進(jìn)行l(wèi)inux內(nèi)核代碼開(kāi)發(fā)或者閱讀就是很好例子,如果沒(méi)有先把代碼跳轉(zhuǎn)等基礎(chǔ)環(huán)境搭建好,對(duì)后續(xù)的代碼閱讀和開(kāi)發(fā)都可

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

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

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

    2023年04月18日
    瀏覽(24)
  • 為vscode配置clangd

    為vscode配置clangd

    clangd能提供更好的補(bǔ)全和提示,自帶檢查一些warning的問(wèn)題,可以減少大家未來(lái)找存在的warning的時(shí)間。經(jīng)過(guò)配置可以在unittest和timetest中也實(shí)現(xiàn)自動(dòng)補(bǔ)全,平均速度比vscode c/c++插件更快。 在插件市場(chǎng)搜索clangd。安裝即可。注意c/c++可以不用卸載,否則調(diào)試可能會(huì)有點(diǎn)問(wèn)題。 在

    2023年04月08日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包