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://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fboost%2Ffiles%2Fboost%2F1.55.0%2F&ts=1387440583&use_mirror=jaist
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
转载于:https://www.cnblogs.com/2018/p/3482263.html
clang 搭建和编译boost 和zero ICE库 (Ubuntu10 64)相关推荐
- 全志A33开发板的android环境搭建及编译、打包
转自:http://blog.csdn.net/jangel_lee/article/details/44306621 A33环境搭建编译手册 说明 目录 Ubuntu安装 4 制作Ubuntu的US ...
- Ubuntu上搭建Android编译环境(1)
外网信号不好,所以把google的原文介绍扒到这里来参考. https://source.android.com/setup/ Android 源代码 Android 是一个针对多种不同设备类型打造的 ...
- ubuntu16.04编译boost for Android(boost 1.65)
下载boost源码 在官网下载指定版本的源码 http://www.boost.org/users/history/ 编译boost源码 1.进入源码目录执行./bootstrap.sh生成编译工具 ...
- linux C++安装并编译boost库
编译安装 wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz tar -zxvf b ...
- windows下编译boost
使用的编辑器是qt,qt自带mingw编译器.因此编译boost也是采用mingw编译. 1. 设置mingw路径到环境变量中 2. 验证设置正确gcc -v 3. 进入boost目录,找到build ...
- 利用gulp搭建less编译环境
什么是less? 一种 动态 样式 语言. LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承, 运算, 函数. LESS 既可以在 客户端 上运行 (支持IE 6+, Webkit, Fi ...
- 如何搭建modem编译环境
[DESCRIPTION] (1)MT6577以及之前的chip平台(如MT6575,73等) 的modem编译环境和MTK的Feature Phone的编译环境一样,即Windows+RVCT (2 ...
- -i 可以编译添加多个_大咖说 | 基于 NXP i.MX8 eIQ 环境搭建和编译
一.前言 NXP 针对 Machine Learning ( ML ) 创建了 eIQ 工具,以方便开发者在 i.MX 系列设备上开发 ML 相关应用. 本篇将会分两个章节,一章节介绍 eIQ 软件, ...
- VC2010编译boost
BOOST已经开始支持VC2010,也有人称之为VC10或者MSC16.在这里谷主介绍下BOOST的编译过程,BOOST跨平台做的很棒,所以我们编译起来其实很简单. 1.下载BOOST发行版或SVN代 ...
最新文章
- $JavaScript(3)
- 黑客必须掌握的基本技能
- 操作系统之进程管理:10、信号量机制(整形、记录型)
- 将物体固定在坐标某个点_坐标变换(2)—不同坐标系下的变换
- 减少HTTP请求(大型网站优化技术)
- bzoj4415 [Shoi2013]发牌 线段树
- DPDK服务核心(coremask)
- 【c++leetcode】判断一个数是否是2的幂、3的幂、4的幂
- 从头到尾谈一下HTTPS
- 重置 Winsock:初始化计算机网络环境
- html转pdf分页问题
- 2路归并排序算法c语言,用二路归并排序算法实现N个元素的排序
- PS CC2019新手必学基础(首选项)设置
- [转]我奋斗了18年不是为了和你一起喝咖啡
- 【STM32】开发板学习1 NUCLEO-L476RG:GPIO例程 点亮LED2灯
- 列表,元组,字典,集合的特点
- 小学期云效能训练营-Day04
- javascript高级程序设计阅读收获(1.1)——javascript简短的历史回顾
- http://jingyan.baidu.com/article/d169e186aa8728436611d8f3.html
- 在线进行去除图片水印