实战英特尔C++编译器 ------ 用ICC编译MP3编码器LAME

intel_www 2008-07-02 03:31:02
加精
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
...全文
3981 70 打赏 收藏 转发到动态 举报
写回复
用AI写文章
70 条回复
切换为时间正序
请发表友善的回复…
发表回复
guang1234wbw 2012-07-07
  • 打赏
  • 举报
回复
学习下
laxila 2008-09-30
  • 打赏
  • 举报
回复
非常好,学习过了,谢谢楼主呀!!!
majiajun_no_5 2008-09-30
  • 打赏
  • 举报
回复
获益匪浅
majiajun_no_2 2008-09-29
  • 打赏
  • 举报
回复
我同意 支持一下
tomato_potato 2008-09-28
  • 打赏
  • 举报
回复
 留爪时间学习
 留爪时间学习
majiajun_no_13 2008-09-28
  • 打赏
  • 举报
回复
潜水多年,今日上岸,继续学习
treetor 2008-09-27
  • 打赏
  • 举报
回复
出来逛逛 学习学习
laxila 2008-09-25
  • 打赏
  • 举报
回复
有道理
laxila 2008-09-25
  • 打赏
  • 举报
回复
好贴 学习下先
converf 2008-09-25
  • 打赏
  • 举报
回复
分析得精彩.....
很受益!
converf 2008-09-25
  • 打赏
  • 举报
回复
分析得精彩.....
很受益!
lehedele 2008-09-24
  • 打赏
  • 举报
回复
好铁需要人气!加油
wzzwt 2008-09-23
  • 打赏
  • 举报
回复
支持下
majiajun_no_2 2008-09-23
  • 打赏
  • 举报
回复
mark
intel_www 2008-07-24
  • 打赏
  • 举报
回复
[Quote=引用 44 楼 shizhixiang 的回复:]
lz,今天我找了一台Core 2 Duo的机器试了一下,结果还是差不多,VC6编译的lame速度最快,我把各种版本的lame都上传到这里了:http://download.csdn.net/source/552484
中国有句老话:是骡子是马,拉出来溜溜啊。兄弟想见识一下lz的东东和兄弟的有什么不同啊。
[/Quote]

这样好了,你把你的build log发上来吧。VC6和ICC的都贴上来看看。
shizhixiang 2008-07-24
  • 打赏
  • 举报
回复
lz,今天我找了一台Core 2 Duo的机器试了一下,结果还是差不多,VC6编译的lame速度最快,我把各种版本的lame都上传到这里了:http://download.csdn.net/source/552484
中国有句老话:是骡子是马,拉出来溜溜啊。兄弟想见识一下lz的东东和兄弟的有什么不同啊。
intel_www 2008-07-24
  • 打赏
  • 举报
回复
[Quote=引用 54 楼 shizhixiang 的回复:]
引用 53 楼 intel_www 的回复:
------ 已启动全部重新生成: 项目: libmp3lame, 配置: Debug Win32 ------
正在删除项目“libmp3lame”(配置“Debug ¦Win32”)的中间文件和输出文件
Performing Custom Build Step on configMS


果然不出我所料,明显是个debug 版本嘛。


是这样的,debug版本和release版本的区别是,debug版本里加了调试信息,因此文件要大一些,release版本我也试过的,只是生成的文件小一些,可…
[/Quote]

理解错误!debug版本和release版本的最主要区别在于是否使用了优化。另外,你给出的命令行里也没有我说的/fast选项。请仔细再看看我给出的步骤,一步一步的试一遍吧。

intel_iclifort 2008-07-24
  • 打赏
  • 举报
回复
[Quote=引用 54 楼 shizhixiang 的回复:]
引用 53 楼 intel_www 的回复:
------ 已启动全部重新生成: 项目: libmp3lame, 配置: Debug Win32 ------
正在删除项目“libmp3lame”(配置“Debug ¦Win32”)的中间文件和输出文件
Performing Custom Build Step on configMS


果然不出我所料,明显是个debug 版本嘛。


是这样的,debug版本和release版本的区别是,debug版本里加了调试信息,因此文件要大一些,release版本我也试过的,只是生成的文件小一些,可对解压…
[/Quote]

如果 ICC Release 版本的参数也是这样的:

/c /O2 /I "../" /I "../mpglib" /I "../libmp3lame" /I "../include" /D "_DEBUG" /D "WIN32" /D "_WIN32" /D "_CONSOLE" /D "_WINDOWS" /D "HAVE_MPGLIB" /D "HAVE_CONFIG_H" /D "_VC80_UPGRADE=0x0710" /FD /EHsc /RTC1 /MTd /GS /GR /Fo".\Debug/" /W3 /nologo /ZI /Gd /Qfp-speculationfast

那和楼主用 /fast ( = /O3 /QxT /Qipo ...) 相比,性能肯定有很大的差距了
shizhixiang 2008-07-24
  • 打赏
  • 举报
回复
[Quote=引用 53 楼 intel_www 的回复:]
------ 已启动全部重新生成: 项目: libmp3lame, 配置: Debug Win32 ------
正在删除项目“libmp3lame”(配置“Debug ¦Win32”)的中间文件和输出文件
Performing Custom Build Step on configMS


果然不出我所料,明显是个debug 版本嘛。
[/Quote]

是这样的,debug版本和release版本的区别是,debug版本里加了调试信息,因此文件要大一些,release版本我也试过的,只是生成的文件小一些,可对解压的速度没有影响的。lz如果需要,我把release版本的build log也帖上来?
intel_www 2008-07-24
  • 打赏
  • 举报
回复
------ 已启动全部重新生成: 项目: libmp3lame, 配置: Debug Win32 ------
正在删除项目“libmp3lame”(配置“Debug ¦Win32”)的中间文件和输出文件
Performing Custom Build Step on configMS


果然不出我所料,明显是个debug 版本嘛。
加载更多回复(49)

566

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧