1.4 开发环境搭建
本节简略介绍在上述开发环境里如何编译、设置Boost程序库,供读者参考。
1.4.1 UNIX开发环境
Boost1.51的编译不再使用早期版本的bjam,而是改用了新的b2工具(boost build v2),所以编译较以前版本有了很大的简化,速度也很快。
编译Boost
UNIX系统(OS X、Linux)下编译Boost很容易,最简单省事的编译方法是在Boost安装目录下直接执行命令:
- ./bootstrap.sh;./b2
第一条命令bootstrap.sh是编译前的配置工作,第二条命令b2开始真正的编译。
得益于摩尔定律,现在Boost库的编译所需要的时间和空间都已经大大缩减了,在目前主流级别CPU上只需要半小时左右,而在以前则需要数个小时。
我们也可以完整编译Boost,需要在bootstrap.sh之后执行如下命令:
- ./b2 --buildtype=complete stage
这样将开始对Boost的完整编译,生成所有调试版、发行版的静态库和动态库。
其中:
buildtype选项指定编译类型,如不指定则默认使用release模式;
stage选项指定Boost使用本地构建。如果使用install选项则编译后会把Boost安装到默认路径下(/usr/local)。
MakeFile范例
UNIX下最常用的构建工具是make,所以下面给出本书在Mac OS X下使用的一个makefile代码,非常简单,仅作示意:
- CC = clang #Linux应使用gcc
- XX = clang++ #Linux应使用g++
- CFLAGS = -Wall -D_REENTRANT -g -std=c++11 #Linux应使用gnu++0x
- INCLUDE = -I/Users/chrono/boost/ #Boost库安装在用户主目录
- STDLIB = -stdlib=libc++ #Linux无需此FLAG
-
- LIBS = -lpthread -lrt #posix线程库和实时库
- OBJS = main.o
- TEST = test
-
- %.o: %.c
- $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
- %.o:%.cpp
- $(XX) $(CFLAGS) $(STDLIB) $(INCLUDE) -c $< -o $@
-
- all: $(TEST)
-
- $(TEST): $(OBJS)
- $(XX) $(STDLIB) -o $(TEST) $(OBJS) $(LIBS)
- ./$(TEST) #编译后直接运行程序
-
- clean:
- rm -f *.o