clang 搭建和编译boost 和zero ICE库 (Ubuntu10 64)
相关介绍资料如下:
Boost编译
http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download 下载文件
http://www.boost.org/users/history/version_1_55_0.html 官方对于clang的说明情况
关于clang的验证
Linux:
Clang: 3.3, 3.2, 3.1, 3.0
如上可见,这个官方已经验证过
ICE编译
http://www.zeroc.com/download/Ice/3.5/Ice-3.5.1.tar.gz
http://www.zeroc.com/download/Ice/3.5/ThirdParty-Sources-3.5.1.tar.gz
http://www.zeroc.com/download/Ice 这里有所有的版本
http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
这个官方已经声明对于Linux下的clang不支持,不过很多人已经验证过【在zeroc的论坛搜索clang可以看到】
首先在如下站点下载这些C++工具库
http://www.zeroc.com/download/Ice/3.5/Ice-3.5.1.tar.gz
http://www.zeroc.com/download/Ice/3.5/ThirdParty-Sources-3.5.1.tar.gz
开工前首先需要把clang安装好,具体参考 http://www.cnblogs.com/2018/p/3464638.html
如下是具体的配置步骤
boost boost_1_55_0.tar.gz
bootstrap.sh
16,17,18
LIBDIR=/root/work/clang+llvm-3.3-amd64-Ubuntu-10.04.4/lib/c++
INCLUDEDIR=/root/work/clang+llvm-3.3-amd64-Ubuntu-10.04.4/lib/c++/v1
LIBS="c++"
211 增加
TOOLSET=clang
使用./b2 可以进行编译,在 stage/lib 下是编译出来的 .a .so 等库文件
ICE Ice-3.5.1.tar.gz ThirdParty-Sources-3.5.1.tar.gz
mcpp bzip需要编译
Ice-3.5.1/cpp/config/Make.rules首行增加
CC=clang
CXX=clang++
CPP=clang -E
Ice-3.5.1/cpp/config/Make.rules.Linux
模仿g++,增加:ifeq ($(CXX),clang++)
bzlib.h 拷贝到 cpp/src下
libbz2.a 拷贝到 cpp/lib下
make
如上即可使用clang 编译出来对应的库,其中ice之编译除了基础库,如果需要编译其他的模块,类似处理即可
使用C++11和ice的混合使用的例子
#Ice非c11版本和c11版本的类混合使用
clang++ -c -I. -I/root/work/tmp/Ice-3.5.1/cpp/include Hello.cpp
clang++ -c -I. -I/root/work/tmp/Ice-3.5.1/cpp/include Client.cpp
clang -std=c++11 -stdlib=libc++ -I/root/work/clang+llvm-3.3-amd64-Ubuntu-10.04.4/lib/c++/v1 -c c11.cpp
clang++ -stdlib=libc++ -L/root/work/libs -o client Hello.o Client.o c11.o -lIce -lIceUtil -lc++
详细的代码和例子参考 http://pan.baidu.com/s/1nGab5
Clang编译出的boost 和ice库的使用http://pan.baidu.com/s/1nGab5 参考其他的test目录的具体代码
其中一个例子测试了boost uuid的使用,clang的性能大体提升2%左右,看来clang的二进制性能还是比较高的。
附录【配置安装脚本】
#!/bin/bash
:<<EOF
#验证机器环境
#target=x86_64-linux-gnu
#Thread model: posix
#gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
###
EOF
pushd pkg
#2 boost
tar -xzvf boost_1_55_0.tar.gz -C .
cp -f pack/bootstrap.sh boost_1_55_0/.
#compile boost
pushd boost_1_55_0
./bootstrap.sh
./b2
#now boost_1_55_0/stage/lib 是clang编译出来的库
popd
#3 ICE
tar -xzvf Ice-3.5.1.tar.gz -C .
cp pack/Make.rules Ice-3.5.1/cpp/config/.
cp pack/Make.rules.Linux Ice-3.5.1/cpp/config/.
#dep mcpp
tar -xzvf ThirdParty-Sources-3.5.1.tar.gz -C .
pushd ThirdParty-Sources-3.5.1
tar -xzvf mcpp-2.7.2.tar.gz -C .
popd
pushd ThirdParty-Sources-3.5.1/mcpp-2.7.2
patch -p0 < ../mcpp/patch.mcpp.2.7.2
./configure CFLAGS=-fPIC --enable-mcpplib --disable-shared
cp -f ../../pack/mcpp_Makefile src/Makefile
pushd src
make
popd
popd
cp -f ThirdParty-Sources-3.5.1/mcpp-2.7.2/src/mcpp_out.h Ice-3.5.1/cpp/src/.
cp -f ThirdParty-Sources-3.5.1/mcpp-2.7.2/src/mcpp_lib.h Ice-3.5.1/cpp/src/.
cp -f ThirdParty-Sources-3.5.1/mcpp-2.7.2/src/.libs/libmcpp.a Ice-3.5.1/cpp/lib/.
#dep bz2
mkdir -p bzip2
tar -xzvf bzip2-1.0.6.tar.gz -C bzip2
pushd bzip2
cp -f ../pack/bzMakefile bzip2/Makefile
make
popd
cp -f bzip2/bzlib.h Ice-3.5.1/cpp/src/.
cp -f bzip2/libbz2.a Ice-3.5.1/cpp/lib/.
#compile ICE using clang
pushd Ice-3.5.1/cpp/src
make
popd
#libIce.so libIceUtil.so 和slice编译出来,其他的需要安装对应的内容,没有验证
#ICE sample
cp -f pack/config.* Ice-3.5.1/cpp/demo/Ice/hello/.
pushd Ice-3.5.1/cpp/demo/Ice/hello
make
popd
#deploy library
cp -f Ice-3.5.1/cpp/lib/libIce* /usr/lib/.
#copy ICE测试验证程序
mkdir -p ../test/ice
cp -f Ice-3.5.1/cpp/demo/Ice/hello/client ../test/ice/.
cp -f Ice-3.5.1/cpp/demo/Ice/hello/server ../test/ice/.
cp -f Ice-3.5.1/cpp/demo/Ice/hello/config.* ../test/ice/.
#cleanup
rm -r -f bzip2
rm -r -f ThirdParty-Sources-3.5.1
rm -r -f Ice-3.5.1
###
popd
详细资料参考 http://pan.baidu.com/s/1nGab5
clang 搭建和编译boost 和zero ICE库 (Ubuntu10 64)的更多相关文章
- Ubuntu 15.04 clang++ 3.6 编译boost 1.59/1.55
Ubuntu 15.04已经可以直接通过apt-get insall 安装clang 3.6, 并且预装的gcc版本是4.9.2.这些安装过程在这里介绍. 首先下载boost源码 wget -O bo ...
- C++ 系列:编译 boost
Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...
- IOS上编译boost库
环境:xcode9mac os 10.13 1.下载boost库并解压2.cd到解压后的文件包内,执行 sh bootstrap.sh(解压后会得到这个脚本文件).3.执行./b2 编译整个库.4.经 ...
- FFMPEG在嵌入式硬件上应用之 —— 基本环境搭建及编译
前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了.今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家 ...
- VS2010编译Boost 1.57 静态链接库
http://www.cnblogs.com/cuish/p/4175491.html 0.前提 Boost库版本 1.57.0 下载地址 http://www.boost.org/users/his ...
- clang编译mysql(Ubuntu10 64位)
编译安装mysql(Ubuntu10 64位) http://www.cnblogs.com/2018/p/3482259.html 这个介绍了gcc形式编译安装mysql 那我们使用clang进行编 ...
- 在linux环境编译boost
1.在boost官网:http://www.boost.org/下载相应版本的boost 2.解压boost到相应目录,在boost跟目录下有b2可执行程序,可以通过输入命令“/b2 --help”, ...
- OSG+VS2010+win7环境搭建---OsgEarth编译
OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 ...
- Linux-QT 开发环境搭建以及编译镜像
搭建Linux-QT 开发环境,需要先搭建Android 的编译环境,然后在Android 编译环境的基础上,再搭建Linux-QT 编译环境. 第一:编译器. 第二:设置环境变量.环境变量设置后,编 ...
随机推荐
- 全球酷站秀:15个顶尖的 CSS3 网站作品
每天有数以百计的网站推出,其中很多优秀网站被推荐到 CSS 画廊供大家评分和评论,这对于网页设计师来说是很好的灵感来源.今天,我们选择了15个来自全球各地的 CSS3 网站设计作品, 它们都是赢得 C ...
- Minimit Anima – 硬件加速的 CSS3 动画插件
Minimit Anima 是一个实现 CSS3 Transforms 和 Transitions 动画的 jQuery 插件.基于硬件加速的 CSS3 动画执行更快,而且它有一个类似于 jQuery ...
- 【Java基础】RTTI与反射之Java
一.引言 很多时候我们的程序可能需要在运行时识别对象和类的信息,比如多态就是基于运行时环境进行动态判断实际引用的对象.在运行时识别对象和类的信息主要有两种方式:1.RTTI,具体是Class对象,它假 ...
- Pentaho Kettle 6.1连接CDH5.4.0集群
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 欢迎转载 最近把之前写的Hadoop MapReduce程序又总结了下,发现很多逻辑基本都是大致相同的,于是想到 ...
- list的一些使用
list无数据判断 在一次判断中,我这样: if(list!=null){ ... } 结果发现list为空数据的时候不管用,后来发现,list只要创建实例就不会是null,但可以为empty,因此 ...
- JS魔法堂:再识Bitwise Operation & Bitwise Shift
Brief linkFly的<JavaScript-如果...没有方法>中提及如何手写Math.round方法,各种奇技淫招看着十分过瘾,最让我惊叹的是 ~~(x + )) ,完全通过加法 ...
- 用原生JS读写CSS样式的方法总结
为了日后方便查询,本人翻阅了一些资料总结了以下方法,仅限原生JS,如有不对的地方欢迎指出!只求大家看完觉得有学到点什么就OK了! 一.可以通过DOM节点对象的style对象(即CSSStyleDe ...
- 将RichTextBox的内容直接写入数据库:
将RichTextBox的内容直接写入数据库: private void button1_Click(object sender, EventArgs e) { System.IO.Memory ...
- 从客户端中检测到有潜在危险的 Request.Form 值 --MVC
可以在处理Post方法的Action添加一个特性: [ValidateInput(false)],这样处理就更加有针对性,提高页面的安全性. 如: [HttpPost][ValidateInput(f ...
- 常用的一些SQL语句整理,也许有你想要的。
本篇文章是对一些常用的sql语句进行了总结与分析,需要的朋友参考下,也许会有你需要的. 1.SQL行列转换 问题:假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 ...