clang的编译

llvm 4.0.1 为例(gcc要求4.9以上,但4.8好像没出问题。编译release版费时间2个小时左右,编译debug一天就不用干什么事了)
 
下载地址:
 
 
 
 
如果只用clang做编译器,可选部分可以不用
 
依赖的库:
  yum install -y python-devel libxml2-devel ncurses-devel doxygen swig readline-devel libedit-devel perl-Data-Dumper
  如果下的是rpm包 rpm -ivh 包名 --nodeps --force
 
解压方式:
1. 解压 llvm-4.0.1.src.tar.xz 改名为 llvm
 
2. 将以下压缩包复制到 llvm/tools
   cfe-4.0.1.src.tar.xz 解压 改名为 clang
   lld-4.0.1.src.tar.xz 解压 改名为 lld
   lldb-4.0.1.src.tar.xz 解压 改名为 lldb
   polly-4.0.1.src.tar.xz 解压 改名为 polly
 
3. 将以下压缩包复制到 llvm/projects
   compiler-rt-4.0.1.src.tar.xz 解压 改名为 compiler-rt
   libcxx-4.0.1.src.tar.xz 解压 改名为 libcxx
   libcxxabi-4.0.1.src.tar.xz 解压 改名为 libcxxabi
   libunwind-4.0.1.src.tar.xz 解压 改名为 libunwind
   openmp-4.0.1.src.tar.xz 解压 改名为 openmp
 
4. 将以下压缩包复制到 llvm/tools/clang/tools
   clang-tools-extra-4.0.1.src.tar.xz 解压 改名为 extra
 
硬件要求:
编译需要3g以上的内存。
没有内存用虚拟内存:
mkdir /mnt/swap
dd if=/dev/zero of=/mnt/swap/swapfile bs=1024 count=8*1024*1024 #8Gb
mkswap /mnt/swap/swapfile
swapon /mnt/swap/swapfile
free -m
注意:如果有如/dev/sda2被挂载,用swapoff /dev/sda2 取消挂载,再挂载 上面建立的swapfile
 
cmake要求:
最好3.8以上
 
编译:
注意:编译前先把 依赖库 装了。编译时,报的错一般是没装 依赖库。
1. 新建一个 build文件夹
2. 进入 build文件夹
3. cmake -G "Unix Makefiles" -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/g++ -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc -DCMAKE_BUILD_TYPE=Release -DLLVM_OPTIMIZED_TABLEGEN=1 llvm的目录
4. make -j2 (全编大概2小时)
5. make install
   注意:如果提示CMake Error at tools/lldb/scripts/cmake_install.cmake:41 (file):
                    file INSTALL cannot find "path/llvm-6.0.0.src/build/lib/python2.7" 错误
   执行 cp -r lib64/python2.7 lib/python2.7 (这里以 build文件夹 为当前目录)
6. clang --version
 
测试:
1. 新建一个cpp文件,写一行打印helloworld代码
2. clang -O2 -std=c++11 -lstdc++ -o a.out cpp文件
 

猜你喜欢

转载自www.cnblogs.com/RYWBlogs/p/9257299.html