3. MXMACA Clangd使用
打开工程目录或文件即可使用。正常情况下,能够识别 .maca 文件,代码高亮显示,无编译报错波浪线提示,如图 3.1 所示。具体功能详见 4 特性列表。
图 3.1 .maca文件示例
体验完整功能需要提供准确的编译命令,比如准确的变量跳转、头文件包含、预编译宏分支选择等。 用户需要提供一个含有每个文件编译命令的 compile_commands.json 的文件,供Clangd获取编译命令。 该文件通常可以自动生成,详见 3.1 为工程生成compile_commands.json文件 。
MXMACA相关头文件需要从MXMACA安装路径中获取,Clangd依次从编译命令的 -maca-path 选项、环境变量 MACA_PATH、Clangd所在目录、 /opt/maca 中获取MXMACA安装路径。
3.1. 为工程生成compile_commands.json文件
基于cmake的工程
方式1:在cmake命令中添加
-DCMAKE_EXPORT_COMPILE_COMMANDS=1方式2:在 CMakeLists.txt 文件中添加
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
在构建根目录下将生成 compile_commands.json ,Clangd会自动搜索到该文件。
基于make的工程
使用bear工具,根据版本不同,命令为 bear make 或 bear -- make 。
其他构建工程,或使用其他工具生成该文件,可参考 工程构建相关文档 。
Clangd工具自动搜索文件目录和其下的 build 目录,以及递归搜索父目录和其下的 build 目录。如果上述目录中没有这个文件,可以软链接或手动拷贝过去。
3.2. 独立文件或简单工程
Clangd支持没有 compile_commands.json 文件的情况,此时Clangd默认其编译命令为 mxcc <file> 。对单个文件或包含关系比较简单的工程,此时也能有相对完整的功能体验。
如果需要在默认命令上添加一些编译选项,可以使用 compile_flags.txt 配置文件,参考 compile_flags.txt相关文档 。