最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

(筆記)如何在 CLion 上調(diào)試編譯 xmake 項目

2022-11-01 02:56 作者:潘多拉茶壺  | 我要投稿

本文用于記錄我個人在學(xué)習(xí)使用 xmake 過程中的一些使用技巧,在后續(xù)再次遇到類似問題時可以用來快速上手。因此不能保證是最好的解決方法,如果有更好的方法歡迎各位提出。

為何使用 xmake?

可以參考?xmake 作者的說法,對我來說最重要的是 xmake 擁有完整一體的包管理機制,使用 xmake 構(gòu)建的項目可以通過簡單的在命令行運行?“xmake” 來進行構(gòu)建而不需要考慮它依賴的第三方庫,并且自己需要引入第三方庫時也只需要通過在 “xmake.lua" 文件中添加 "add_requires("xxx")" 就可以自動安裝,不需要手動配置。

為何使用 CLion?

這個主要是使用習(xí)慣的原因,因為我習(xí)慣了使用 Jetbrains 系列的軟件進行開發(fā),因此如果非必要,或者其他軟件明顯更加方便,我是不會考慮改用其他軟件的。當(dāng)然也希望 xmake 能越做越好,讓 CLion 可以官方支持 xmake 項目。

原理

由于 CLion 中的 xmake 插件并不好用(是通過生成 cmake 文件來進行調(diào)試,而有很多邏輯并不能很好的生成對應(yīng)的 cmake 文件,并且當(dāng)項目大了后,并不能保證 cmake 調(diào)試通過了而 xmake 一定能通過,并且實際往往是 xmake 能通過而轉(zhuǎn)成 cmake 后會有各種各樣的問題)。這里使用生成 compile_commands 的方式來實現(xiàn)對 xmake 項目的調(diào)試。

安裝 xmake

參考官網(wǎng)(https://xmake.io/#/zh-cn/)這里不進行贅述。需要注意的是,一定要將 xmake 添加到系統(tǒng)的環(huán)境變量,也就是在命令行輸入 "xmake --version" 后,會出現(xiàn):


創(chuàng)建一個 xmake 項目

可以參考我在 github 上創(chuàng)建的例子(https://github.com/CHanzyLazer/xmake-example)以及官網(wǎng)的例子(https://xmake.io/#/zh-cn/getting_started),項目目錄中需要一個 "xmake.lua" 文件,并且一般會將 main.cpp 放到 src 目錄下。

這里都以我在?github 上的這個項目作為例子。

在 CLion 中添加這個項目

直接在 clion 中打開這個文件夾即可,讓 clion 可以識別此項目,需要在命令行中輸入 "xmake project -k compile_commands" 來生成?compile_commands 文件,然后在 clion 中打開剛剛生成的 compile_commands 文件(可能需要電腦中已經(jīng)安裝好了 VS),點擊出現(xiàn)的 “加載 編譯數(shù)據(jù)庫 項目” 即可實現(xiàn)在?clion 中添加這個項目。詳細(xì)參考下圖:

打開?xmake 項目的文件夾
生成 compile_commands 文件
加載 編譯數(shù)據(jù)庫 項目

加載完成后打開 scr/main.cpp,可以發(fā)現(xiàn)代碼已經(jīng)能夠高亮了:


運行和調(diào)試

這里稍微有些復(fù)雜,需要先在 CLion 的 “文件 →?設(shè)置 →?構(gòu)建、執(zhí)行、部署?→ 自定義構(gòu)建目標(biāo)” 中添加目標(biāo),如下圖添加 xmake 的構(gòu)建和清理工具并在構(gòu)建目標(biāo)中設(shè)置好:

添加自定義構(gòu)建目標(biāo)
創(chuàng)建 xmake 的構(gòu)建工具
xmake 構(gòu)建工具創(chuàng)建完成后的樣子
創(chuàng)建 xmake 的清理工具
設(shè)置好剛才創(chuàng)建的兩個工具后確認(rèn)

然后需要設(shè)置幾個全局的外部工具用于設(shè)置平臺和構(gòu)建模式(用于快速切換 release 和 debug 模式)。如下圖,在?CLion?的 “文件?→?設(shè)置?→ 工具?→ 外部工具” 中添加兩個外部工具分別用來設(shè)置當(dāng)前的模式為 release 和 debug:

設(shè)置 release 模式的工具,f -p windows -m release -a x86 -y
設(shè)置 debug 模式的工具,f -p windows -m debug -a x86 -y

最后在 clion 的右上角添加配置,設(shè)置好之前設(shè)置的構(gòu)建目標(biāo),并在構(gòu)建之前添加運行之前添加的外部工具用來設(shè)置構(gòu)建的模式。這里將 release 模式和 debug 模式分別添加了兩個配置,從而可以方便的進行切換。

添加配置
添加自定義構(gòu)建應(yīng)用程序
添加 release 配置
(補充)在構(gòu)建之前添加運行外部工具的方法
添加 debug 配置

添加完成后就可以直接在右上角選擇 release 或 debug 模式,直接運行項目了:


自動更新 compile_command 文件

可能會注意到,在通過右上角配置切換 release 和 debug 模式并運行后,雖然程序已經(jīng)切換了模式,但是代碼高亮并沒有切換:

程序輸出已經(jīng)有 "debugging!!!",但是代碼中依舊沒有高亮

需要再次在命令行中輸入??"xmake project -k compile_commands" 來重新生成?compile_commands 文件才能實現(xiàn)高亮更新:

更新 compile_command 文件文件后能正常高亮

并且也可能會希望能夠在更新 xmake.lua 文件后能夠自動更新 compile_command 文件,這里需要借助 File Watcher 這個插件來實現(xiàn)這個功能:

并且由于 xmake 在更新?compile_command 文件后會改變自己的某些配置文件,從而導(dǎo)致可能被再次檢測到修改,導(dǎo)致死循環(huán),因此需要使用外置的 .lua 文件來重新實現(xiàn)不修改自身配置文件的方式來更新?compile_command 文件(這里參考了 vscode 的 xmake 插件的寫法:https://github.com/xmake-io/xmake-vscode/blob/master/assets/update_intellisense.lua),在這里的例子里就是 gen_cc.lua 文件(https://github.com/CHanzyLazer/xmake-example/blob/main/gen_cc.lua)。

如下圖,在 “文件?→?設(shè)置?→ 工具?→ File Watcher” 中設(shè)置監(jiān)控 xmake 相關(guān)文件的變化后自動執(zhí)行?gen_cc.lua 來更新?compile_command 文件:

設(shè)置 file watcher

設(shè)置完成后就可以自動更新?compile_command 文件了。

參考:

  • 【CLion開發(fā)編譯調(diào)試Makefile項目】:https://blog.csdn.net/lylwo317/article/details/86673912

  • 【Custom build targets and applications】:https://www.jetbrains.com/help/clion/custom-build-targets.html

  • 【clion 的 file watcher 插件檢測 xmake 的設(shè)置來變化自動更新 compile_command.json 時出現(xiàn)死循環(huán)】:https://github.com/xmake-io/xmake/issues/2843



(筆記)如何在 CLion 上調(diào)試編譯 xmake 項目的評論 (共 條)

分享到微博請遵守國家法律
闸北区| 广平县| 水城县| 东光县| 浦东新区| 舟曲县| 普格县| 郓城县| 胶南市| 娄底市| 庄河市| 青州市| 永春县| 金沙县| 易门县| 靖西县| 桂东县| 井研县| 临高县| 赣州市| 清远市| 衡水市| 西畴县| 马山县| 高唐县| 九江市| 青阳县| 乾安县| 云林县| 临桂县| 玉树县| 汉沽区| 安泽县| 云龙县| 永川市| 高密市| 麻城市| 临泽县| 南雄市| 咸阳市| 额尔古纳市|