在Thinking in C++ 第二卷中有一章节专门讲述并发,其中的例子需要ZThread,本文就介绍如何在DEV C++中编译ZThread库
准备工作
1.首先,你需要下载 ZThread-2.3.2。
2.然后解压缩,这是一个tar文件,你可以用GNUWin32下的TAR解压缩,顺便一提,许多开源项目的压缩包都用到TAR和GZIP压缩格式,为了以后方便,你也可以下载一个GZIP:
- LibArchive for Windows, TAR: http://gnuwin32.sourceforge.net/packages/tar.htm.
- Gzip for Windows: http://gnuwin32.sourceforge.net/packages/gzip.htm
安装完成后,你需要在开始——我的电脑——属性——高级——环境变量——找到系统环境变量下的Path变量——双击——*记住,千万不要将里面的值删除,我们所做的只是添加*——将TAR,Gzip的安装路径添加在后面,添加的路径用分号;分割。
3.还要安装一个Patch for Windows,同前面一样,需要在系统变量中设置patch的安装路径。
4.这样你就基本完成了,但是还需要一个东西,否则DEV C++的GCC是无法编译的,一个diff文件
到这个地址:http://bugs.gentoo.org/attachment.cgi?id=161093
打开 zthread-2.3.2-no-fpermissive.diff 链接,将里面的内容复制到记事本,然后保存为 zthread-2.3.2-no-fpermissive.diff
好了,这样准备完全了,接下来就是编译
1.首先将zthread-2.3.2.tar文件解压缩,你可以用前面下载的TAR解压缩,如果你有WINRAR,也可以。
2.将刚刚的zthread-2.3.2-no-fpermissive.diff 复制到zthread-2.3.2/目录中。
3.这个时候就需要patch了,运行控制台命令
patch -p0 -I zthread-2.3.2-no-fpermissive.diff
其实你仔细看过diff文件,就会发现这个diff文件是修改了zthread-2.3.2/include/zthread下的某些文件。
如果patch不成功,运行
patch --help
看看命令格式。
如果成功应该出现下面的信息:
patching file `include/zthread/Guard.h'
patching file `src/MutexImpl.h'
4.打开DEV C++,新建工程——static library——将zthread-2.3.2//src/目录下的所有.cxx文件添加进来。在工程属性——文件/目录——包含文件目录——添加zthread-2.3.2/include路径
5.编译。会产生一个.a的静态库文件。
如何使用
新建工程,在工程属性中设置:
1.包含zthread-2.3.2/include目录
2.添加对刚才产生的.a静态库文件的链接
然后就可以编译了。