源码编译安装 clang

参考文章

https://solarianprogrammer.com/2013/01/17/building-clang-libcpp-ubuntu-linux/

http://blog.youkuaiyun.com/heartszhang/article/details/17652461



安装好 ubuntu 后,打开终端, 依次输入下面几条命令

1.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install g++ subversion cmake



2.

从 http://llvm.org/releases/download.html 下载 LLVM ,CLANG,libc++, libcxxabi 的最新版本源码

并分别解压缩到下面 3 个( 新建的 )目录
~/llvm

~/llvm/tools/clang

~/Clang/libcxx

~/libcxxabi



3.
编译链接 llvm 和 clang

cd ..
cd ..
mkdir build && cd build

../llvm/configure --prefix=/usr/clang_3_4 --enable-optimized --enable-targets=host --disable-compiler-version-checks

make -j 8


4.
安装 clang
sudo make install

安装完毕后, usr 目录下生成了 clang_3_4 目录

把 clang 目录加入系统路径

打开 .bashrc 文件,
cd ~
gedit ~/.bashrc
. .bashrc

在最后加上
export PATH=/usr/clang_3_4/bin:$PATH



5.
编译并安装 libc++

编译 libc++ 时需要包含系统C++编译器和目标平台的路径
在终端中输入下面语句来获取路径信息

echo | g++ -Wp,-v -x c++ - -fsyntax-only

输入后终端显示下面14行文字信息

1 ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/4.8"
2 ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
3 ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include"
4 #include "..." search starts here:
5 #include <...> search starts here:
6 /usr/include/c++/4.8
7 /usr/include/x86_64-linux-gnu/c++/4.8
8 /usr/include/c++/4.8/backward
9 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
10 /usr/local/include
11 /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
12 /usr/include/x86_64-linux-gnu
13 /usr/include
14 End of search list.

第 6 行和第 7 行就是需要的路径信息


编译 libc++

在终端中输入下面几行命令

cd ~/Clang
mkdir build_libcxx && cd build_libcxx

CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DLIBCXX_CXX_ABI=libsupc++ -DLIBCXX_LIBSUPCXX_INCLUDE_PATHS="/usr/include/c++/4.8/;/usr/include/x86_64-linux-gnu/c++/4.8" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr $HOME/Clang/libcxx

make -j 8
sudo make install


6.

编译 libc++abi

cd libcxxabi/lib

./buildit

sudo cp libc++abi.so.1.0 /usr/lib/libc++abi.so.1.0

cd /usr/lib

sudo ln -s libc++abi.so.1.0 libc++abi.so.1

sudo ln -s libc++abi.so.1 libc++abi.so




测试 clang

现在可以使用下面的编译命令来编译 C++11 的代码了

clang++ -std=c++11 -stdlib=libc++ <your_program_name>

新建一个 example_001.cpp 文件, 内容如下:

//Program to test the new C++11 lambda syntax
#include <iostream>

using namespace std;

int main()
{
    cout << [](int m, int n) { return m + n;} (2,4) << endl;
    return 0;
}

在终端中输入:
clang++ -std=c++11 -stdlib=libc++ -lc++abi example_001.cpp -o example_001

如果能编译通过并生成 example_001, 就表示 clang 可以用了


### 编译安装 Clang-Tidy 的指南 Clang-Tidy 是一个用于 C++ 代码静态分析的工具,能够帮助开发者发现潜在的问题。为了编译安装 Clang-Tidy,需要遵循一系列特定的操作。 #### 准备工作环境 确保已经安装了必要的依赖项,包括 CMake 和 Ninja 构建系统以及 Git 版本控制系统。对于 Linux 用户来说,可以通过包管理器来获取这些软件: ```bash sudo apt-get update && sudo apt-get install cmake ninja-build git ``` #### 获取 LLVM 源码库 由于 Clang-Tidy 属于 LLVM 项目的一部分,因此可以从官方仓库克隆整个 LLVM 项目及其子模块到本地机器上: ```bash git clone https://github.com/llvm/llvm-project.git cd llvm-project/ ``` #### 配置构建选项 创建一个新的目录作为构建输出路径,并进入该目录执行配置命令。这里推荐使用 `Ninja` 来加速多线程编译过程;如果偏好其他方式,则可替换为相应的生成器参数 `-G "Unix Makefiles"` 或者其他的 IDE 支持格式。 ```bash mkdir build && cd build cmake -GNinja ../llvm \ -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" \ -DCMAKE_BUILD_TYPE=Release ``` 上述命令指定了只启用 Clang 及其额外工具集(含 Clang-Tidy),并且设置 Release 模式的优化级别[^1]。 #### 执行实际编译流程 一旦完成前面提到的所有准备工作之后,在终端里运行下面这条简单的指令就可以开始正式编译啦! ```bash ninja clang-tidy ``` 这一步骤会花费一定时间取决于计算机性能状况,请耐心等待直至结束。 #### 安装至系统环境中 当成功编译完成后,可以选择将其全局安装以便随时调用。注意此操作通常需要管理员权限才能顺利完成。 ```bash sudo ninja install ``` 此时应该可以在任意位置通过命令行访问最新版本的 Clang-Tidy 工具了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值