开发 clang 插件:0 基础感受底层组

开发 clang 插件, 最常见的就是,属性检查器

本文最后的效果:

截屏2021-08-31 上午12.20.26.png

llvm-project, 直接尚

本文采用 CPP ,开发插件

1, 项目准备

1.1 安装 cmake

brew  install cmake

cmake 可以帮我们,根据脚本,自动创建工程

查看,之前安装过没有

可以用

brew list | grep ^cmake

1.2 获取 llvm 的工程

1.2.1 下载 llvm-project

git clone https://github.com/llvm/llvm-project

使用 Xcode 生成 llvm 项目

进入

cd /Users/jzd/Movies/A_B/llvm-project

等价于

> cd /yourPath/llvm-project

生产

cmake -S llvm -B build -G Xcode -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi"

需要添加这三个库, clang 、libcxx 、libcxxabi

( 这一步,可能时间有点长 )

得到我们要的工程文件

截屏2021-08-30 下午4.14.15.png

1.2.2, 编译

run 一下

( 这一步,可能时间比较长 )

2, 插件开发

2.1 开发前的准备

2.1.1 做模版配置

进入到这个文件夹

/yourPath/llvm-project/clang/tools

修改文件 CMakeLists.txt

CMakeLists.txt 是 cmake 的配置文件

添加最后一句

add_clang_subdirectory(libclang)
add_clang_subdirectory(amdgpu-arch)

// 添加这一句, 添加插件目录
add_clang_subdirectory(propPlugIn)

创建 /yourPath/llvm-project/clang/tools 下的

文件夹 propPlugIn 文件夹

与 cmake 的配置文件中,添加的语句对应

效果如图

截屏2021-08-30 下午7.49.21.png

可看到,最右端,有两个文件

配置文件 CMakeLists.txt 中写一句:

add_llvm_library( propPlugIn MODULE BUILDTREE_ONLY propertyPlugIn.cpp)

添加 llvm 插件

上面提到的 cpp 文件,为空

2.1.2 配置完成,出结果

重新跑一下

cd /yourPath/llvm-project

cmake -S llvm -B build -G Xcode -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi"

此时查看

/yourPath/llvm-project 中的工程,长这样

截屏2021-08-30 下午7.50.37.png

阶段性小结: 此时 cmake 暂且放一放, 使用 Xcode 操作

2.2 插件开发中

2.2.1 第一阶段,找出
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值