redhat6.2 clang编译环境搭建(采用源码包编译安装)
1. About clang++
office site:http://clang.llvm.org/
A major focus of our work on clang is to make it fast, light and scalable. The library-based architecture of clang makes it straight-forward to time and profile the cost of each layer of the stack, and the driver has a number of options for performance analysis. Many detailed benchmarks can be found online.
2. System environment configuration
Getting Introduction from the office website:
Compiling LLVM requires that you have several software packages installed. The table below lists those required packages. The Package column is the usual name for the software package that LLVM depends on. The Version column provides “known to work” versions of the package. The Notes column describes how LLVM uses the package and provides other details.
| Package | Version | Notes |
|---|---|---|
| GNU Make | 3.79, 3.79.1 | Makefile/build processor |
| GCC | >=4.7.0 | C/C++ compiler1 |
| python | >=2.5 | Automated test suite2 |
| GNU M4 | 1.4 | Macro processor for configuration3 |
| GNU Autoconf | 2.60 | Configuration script builder3 |
| GNU Automake | 1.9.6 | aclocal macro generator3 |
| libtool | 1.5.22 | Shared library manager3 |
| zlib | >=1.2.3.4 | Compression library4 |
local System configuration analysis :
# /usr/bin/gcc4.4.5 --version
gcc4.4.5 (GCC) 4.4. (Red Hat 4.4.-) # python -V
Python 2.6. # make -v
GNU Make 3.81 # automake --version
automake (GNU automake) 1.11. # libtool --version
ltmain.sh (GNU libtool) 2.2.6b
Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>,
3. gcc upgrade
3.1 gmp,mpfr,mpc installation
wget https://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.bz2
wget http://www.mpfr.org/mpfr-current/mpfr-3.1.2.tar.gz
wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.2.tar.gz
tar jxvf gmp-5.1..tar.bz2
tar zxvf mpfr-3.1..tar.gz
tar zxvf mpc-1.0..tar.gz cd gmp-5.1.
./configure --enable-cxx CPPFLAGS=-fexceptions
make; make install
cd ../mpfr-3.1.; ./configure
make; make install
cd ../mpc-1.0.; ./configure
make; make install
3.2 gcc upgrade
wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2
tar -xvjf gcc-4.8..tar.bz2
cd gcc-4.8.mkdir gcc-4.8.-build
cd gcc-4.8.-build
../configure --prefix=/usr/local/gcc-4.8.2 --enable-languages=c,c++
make make install
notice:change the links in /usr/lib & /usr/bin [only need make some softlinks to the directory, incase of pollute the original files . You can remove the softlinks while necessary which is not commentary ]
cd /usr/bin/
# mv gcc gcc4.4.5
# mv g++ g++4.4. ln -sf /usr/local/gcc-4.8./bin/gcc gcc
ln -sf /usr/local/gcc-4.8./bin/g++ g++
ln -sf /usr/local/gcc-4.8./lib64/libstdc++.so.6.0. /usr/lib64/libstdc++.so.
4. make building files
Change directory to where you want the llvm directory placed.
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
4.2 Checkout Clang:
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd ../..
4.3 Checkout extra Clang Tools: (optional)
cd llvm/tools/clang/tools
svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra
cd ../../../..
4.4 Checkout Compiler-RT:
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
cd ../..
4.5 Build LLVM and Clang:
mkdir build (for building without polluting the source dir)
cd build
../configure --prefix=/usr/local/clang --enable-optimized
make
4.6 error resolved
checking for x86_64-unknown-linux-gnu-gcc... /data/installs/gcc-4.7./host-x86_64-unknown-linux-gnu/gcc/xgcc -B/data/installs/gcc-4.7./host-x86_64-unknown-linux-gnu/gcc/ -B/usr/local/gcc-4.7./x86_64-unknown-linux-gnu/bin/ -B/usr/local/gcc-4.7./x86_64-unknown-linux-gnu/lib/ -isystem /usr/local/gcc-4.7./x86_64-unknown-linux-gnu/include -isystem /usr/local/gcc-4.7./x86_64-unknown-linux-gnu/sys-include
checking for suffix of object files... configure: error: in `/data/installs/gcc-4.7./x86_64-unknown-linux-gnu/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[]: *** [configure-stage1-target-libgcc] Error
make[]: Leaving directory `/data/installs/gcc-4.7.'
make[]: *** [stage1-bubble] Error
make[]: Leaving directory `/data/installs/gcc-4.7.'
make: *** [all] Error
resolution: due to the official document, the gcc-4.7.4 can not work normally with the clang++ , which been improved to be a bug

resolution:

5. clang environment test
root@192.168.100.252:/data/forilen# cat t.c
#include <stdio.h>
int main(int argc, char **argv) { printf("hello world\n"); }
root@192.168.100.252:/data/forilen# clang t.c
root@192.168.100.252:/data/forilen# ls
a.out for.sh gerritDir git scripts t.c
root@192.168.100.252:/data/forilen# ./a.out
hello world
6. References
[1]. gcc upgrade: http://my.oschina.net/vaero/blog/210485
[2]. gcc download: http://gcc.parentingamerica.com/releases/ https://gcc.gnu.org/mirrors.html
[3]. clang installation: http://clang.llvm.org/get_started.html#build
[4]. python Introduction: http://blog.csdn.net/pan_tian/article/details/7684409
redhat6.2 clang编译环境搭建(采用源码包编译安装)的更多相关文章
- LAMP 环境搭建之源码包编译安装
mysql用的二进制包安装. Apache php 用的源码包 mysql版本5.5.46 Apache版本2.4.7 PHP版本:5.5 mysql安装部分参考了阿铭linux的内容. 这是 ...
- Emscripten编译环境搭建--将C和C++编译成JS
Emscripten编译环境搭建--将C和C++编译成JS 需求:linux环境下用js执行c.c++文件,使用emscirpten编译器 目标:搭建好Emscripten环境 环境:Ubuntu16 ...
- MySQL源码包编译安装
+++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库实力部署时间:2019年3月9日内容:MySQL源码包进行编译,然后部署MySQL单实例重点 ...
- CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作
CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作 2018年07月05日 00:28:38 String峰峰 阅读数:2614 使用yum安装的MySQL一般版本比较旧,但 ...
- 编译最新版webrtc源码和编译好的整个项目10多个G【分享】
编译最新版webrtc源码和编译好的整个项目10多个G[分享] 参考https://webrtc.org/native-code/development/编译最新版webrtc源码: Git clon ...
- zabbix 3.2.2 server端(源码包)安装部署 (一)【转】
环境准备: 操作系统 CentOS 6.8 2.6.32-642.11.1.el6.x86_64 zabbix server 172.16.10.150 zabbix agent 172.16.10. ...
- Linux——【rpm、yun、源码包】安装
RPM包或者安装源码包 在windows下安装一个软件很轻松,只要双击.exe的文件,安装提示连续“下一步”即可,然而linux系统下安装一个软件似乎并不那么轻松,因为我们不是在图形界面下.所以我们要 ...
- Linux学习笔记15—RPM包的安装OR源码包的安装
RPM安装命令1. 安装一个rpm包rpm –ivh 包名“-i” : 安装的意思“-v” : 可视化“-h” : 显示安装进度另外在安装一个rpm包时常用的附带参数有:--force : 强制安装, ...
- 源码包的安装、rsync同步、inotify监测
一.源码包的安装 1.源码包的作用:yum 使用的是rpm包,rpm包安装的不能指定安装位置 源码包可以按需选择/定制,及时修复bug ,适用于各种平台 2.大致过程:源码包——>make gc ...
随机推荐
- Java泛型中extends和super的理解
作者:zhang siege链接:https://www.zhihu.com/question/20400700/answer/91106397来源:知乎著作权归作者所有.商业转载请联系作者获得授权, ...
- phpredis中文手册——《redis中文手册》 php版(转)
redis中文手册:http://readthedocs.org/docs/redis/en/latest/ 本文是参考<redis中文手册>,将示例代码用php来实现,注意php-red ...
- getAttribure()和getParameter()的区别
1.getAttribute是取得jsp中 用setAttribute设定的attribute 2.parameter得到的是string:attribute得到的是object 3.request. ...
- Ubuntu 14.04安装配置NFS
(一)安装NFS服务器 sudo apt-get install nfs-kernel-server sudo apt-get install nfs-common(在安装nsf-kernel-se ...
- C#:Ini文件操作(待补充)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...
- python 中写hive 脚本
1.直接执行.sql脚本 import numpy as np import pandas as pd import lightgbm as lgb from pandas import DataFr ...
- 解决Eclipse无法打开“Failed to load the JNI shared library”
这是因为JDK配置错误所导致的现象. 一般说来,新购笔记本会预装64位的windows系统,而在网上下载软件时,32位会优先出现在页面中(现在来说是这个情况,但我认为未来64位会越来越普及). 如果你 ...
- Redis(八):spring data redis 理解
前言 Spring Data Redis project,应用了Spring概念来开发使用键值形式的数据存储的解决方案.我们(官方)提供了一个 "template" ,这是一个高级 ...
- Android 线性布局(LinearLayout)相关官方文档 - 布局參数部分
Android 线性布局(LinearLayout)相关官方文档 - 布局參数部分 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商 ...
- jq使用自定义属性实现有title的tab切换
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...