cppinsights 是一款C++源代码到源代码的转换,它可以把C++中的模板、auto以及C++11新特性展开。可以清楚的看到编译器做了哪些事情。
1 编译环境
- gcc 7.3以上
- llvm+clang 10.0以上
- pyhon3
- cmake 3.13以上
以下主要对llvm+clang 10 进行安装
2 编译安装llvm+clang 10
2.1 下载源代码
https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/llvm-project-10.0.0.tar.xz
或者
https://pan.baidu.com/s/1YPy705mEExKgC9Pw2T14ew 提取码: dcv6
2.2 解压
tar -xvf llvm-project-10.0.0.tar.xz
2.3 配置编译环境
进入到刚刚解压的文件夹
创建 build 文件夹,以后的编译工作在build文件夹下进行
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_PARALLEL_LINK_JOBS=4 -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_ENABLE_PROJECTS="clang" ../llvm
选项说明
- -DCMAKE_BUILD_TYPE=Release 表示采用发布版本,
- -DLLVM_ENABLE_ASSERTIONS=On 表示开启断言检查
- -DLLVM_PARALLEL_LINK_JOBS=4 表示连接时,同时可以进行多少个连接。最好与之后的make -j 设置同样的数目。
- -DLLVM_TARGETS_TO_BUILD="X86" 表示编译的目标是X86架构的CPU。
- -DLLVM_ENABLE_PROJECTS="clang" 表示同时编译clang, 因为clang 是llvm 项目的子项目。如果想编译其他子项目可以在此处添加,中间用分号隔开。或者也可以单独去clang 文件夹下单独编译安装
2.4 编译安装
make -j4
make install
注意:此处编译需要很长时间,可以开启最大的进程编译。如果在make -j4 出现编译器错误,不用在意,继续make -j4 ,经过多次的make 就可以编译成功了。
在make install 时需要管理员权限。
image.png
此处表示clang 安装成功了
3 编译安装cppinsights
git clone https://github.com/andreasfertig/cppinsights.git
cd cppinsights
mkdir build
cd build
cmake -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ ..
make -j4
cp insights /usr/local/bin/
注意:
-DCMAKE_CXX_COMPILER 选项指定clang++ 的路径,
3.1 使用insights
insights <YOUR_CPP_FILE> -- -std=c++17
参考:https://github.com/andreasfertig/cppinsights
https://github.com/llvm/llvm-project/tree/llvmorg-10.0.0
网友评论