实战英特尔C++编译器 ------ 用ICC编译MP3编码器LAME
LAME 是目前最常用的一个开源MP3编码软件,从1998年12月至今,Lame已被越来越多人的公认为是MP3压缩的最佳利器。Lame编码出来的MP3音色纯厚、空间宽广、低音清晰、细节表现良好,它独创的心理音响模型技术保证了CD音频还原的真实性。在这里我们就用它作例子来展示一下如何用英特尔的C++编译器来编译一个开源程序。LAME本身是一个跨平台的软件,支持常见的Windows和Linux平台,这里我们使用的是Linux系统。
1. 首先你要到LAME的网站上下载其源代码包(通常这是一个.tgz文件),然后把这个.tgz文件解压缩到一个目录下。解压缩过程会生成一个新的子目录,目录名通常就是lame后面跟上版本号。
2. 接下来我们要进入到生成的子目录中配置编译环境。通常如果使用的是系统缺省的GCC编译器的话我们只需简单的运行当前目录下的配置脚本“./configure”即可。但是由于这里我们打算使用英特尔编译器,所以我们得先配置好英特尔编译器的工作环境,然后再进行通常的编译配置。这可以通过运行下面的命令来完成:
B Shell环境:
source <英特尔编译器安装目录>/bin/iccvars.sh
或者
C Shell 环境:
source <英特尔编译器安装目录>/bin/iccvars.csh
3. 配置好英特尔编译器工作环境后可以运行”icc –V”命令来验证一下icc是否工作:
$ icc -V
Intel(R) C Compiler for applications running on IA-32, Version 10.1 Build 20080212 Package ID: l_cc_p_10.1.013
Copyright (C) 1985-2008 Intel Corporation. All rights reserved.
4. 接下来我们回到通常的编译配置。这时我们就不能简单的运行configure脚本了,因为我们要指定英特尔编译器,而不是使用系统缺省的GCC:
./configure CC=icc CFLAGS="-fast" CXX=icpc CXXFLAGS="-fast" AR=xiar