我现在工作中要写个fuzz引擎,语法分析部分用到了clang的接口,于是把自己用到的llvm clang的知识写一个系列专栏
LLVM和clang是什么
LLVM是一个广泛使用的编译器基础设施项目,提供了用于构建编译器、链接器、调试器等工具的库和工具链
Clang是LLVM项目中的一个C/C++/Objective-C编译器前端,它提供了对源代码的词法分析、语法分析、语义分析等功能,并生成LLVM的中间表示(IR)。Clang的设计目标是提供一个高效、灵活且易于使用的编译器前端,支持多种编程语言和平台。
1.下载llvm15.04版本
2.下载完成后
cd llvm-project-llvmorg-15.0.4
mkdir build
cmake -G "Unix Makefiles" -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE="Release" -DLLVM_INCLUDE_TESTS=OFF ../llvm
make -j4
make install
指定llvm安装目录:
cmake -DCMAKE_INSTALL_PREFIX=/path/to/directory ...
其他命令:
# 查看llvm安装到哪个目录
grep CMAKE_INSTALL_PREFIX CMakeCache.txt
接下来我会介绍llvm libtooling rewriter接口的使用,如果文章对你有用,欢迎关注我!