最近一直在使用vscode+clangd的方式編寫代碼,感覺使用clangd查找函數調用、函數聲明、類型定義等等都比使用vscode自帶的c/c++插件好用太多了。
現在我有一個功能是IAR版本的,那么有沒有辦法生成clangd使用的compile_commands.json文件呢?
答案是:有的,辦法是使用一條命令
iarbuild.exe SmartB_OS_Project.ewp -jsondb SmartB_OS_Project -output compile_commands.json
首先需要將iarbuild.exe文件路徑添加到環境變量PATH中。
在“xxx.eww”IAR工程文件路徑中打開powershell或者bash
然后編譯IAR工程生成“編譯文件夾”,我是“SmartB_OS_Project”
最后輸入shell命令:
iarbuild.exe SmartB_OS_Project.ewp -jsondb SmartB_OS_Project -output compile_commands.json
其中,SmartB_OS_Project.ewp文件為IAR工程文件,SmartB_OS_Project為IAR編譯后中間文件、hex文件等所在文件夾。
最后,生成“compile_commands.json”文件。
吐槽:雖然生成了compile_commands.json文件,但是使用vscode+clangd打開,還是不會生成“.cache”文件。我現在也不知道原因是什么。希望大家能夠提供幫助。